我已经测试了这个Firebase Filtering data with PHP,但是我收到了这个错误,而且我不知道如何调试它
致命错误:未捕获的GuzzleHttp \ Exception \ ClientException:客户端
错误:GET https://table.firebaseio.com/tbl_admin?orderBy=%22username%22&equalTo=%22admin%22&limitToFirst=1
导致出现400 Bad Request
响应:{“错误”:“索引不正确
定义后,将\“。indexOn \”:\“用户名\”添加到路径\“ / tbl_admin \”,
规则”
D:\ Xampp \ htdocs \ firebase \ vendor \ guzzlehttp \ guzzle \ src \ Exception \ RequestException.php:113
堆栈跟踪:#0
D:\ Xampp \ htdocs \ firebase \ vendor \ guzzlehttp \ guzzle \ src \ Middleware.php(66):
GuzzleHttp \ Exception \ RequestException :: create(Object(GuzzleHttp \ Psr7 \ Request),
对象(GuzzleHttp \ Psr7 \ Response))#1
D:\ Xampp \ htdocs \ firebase \ vendor \ guzzlehttp \ promises \ src \ Promise.php(203):
GuzzleHttp \ Middleware :: GuzzleHttp {closure}(Object(GuzzleHttp \ Psr7 \ Response))
2 D:\ Xampp \ htdocs \ firebase \ vendor \ guzzlehttp \ promises \ src \ Promise.php(156):
GuzzleHttp \ Promise \ Promise :: callHandler(1,
对象(GuzzleHttp \ Psr7 \ Response),数组)#3
D:\ Xampp \ htdocs \ firebase \ vendor \ guzzlehttp \ promises \ src \ TaskQueue.php(47):
GuzzleHttp \ Prom输入
D:\ Xampp \ htdocs \ firebase \ vendor \ kreait \ firebase-php \ src \ Firebase \ Exception \ QueryException.php
在第28行
我将如何在Firebase上对此进行过滤,因为我已经在mysql上查询了这样的内容:
SELECT * FROM tbl_admin WHERE username = 'admin'
最佳答案
如果阅读错误消息,您会发现它显示:
索引未定义,在路径“ / tbl_admin”中添加“ .indexOn”:“用户名”
您可以通过导航到项目的Firebase Web控制台中的“数据库规则”部分来添加这些规则(https://console.firebase.google.com/project/_/database/_/rules应该将您带到那里)并添加索引,以使您的规则如下所示:
{
"rules": {
".read": false,
".write": false,
"tbl_admin": {
".indexOn": ["username"]
}
}
}
重要的部分是
tbl_admin
字段,如果规则^^中已经有其他设置,则不要仅复制并粘贴代码段。