我已经测试了这个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'


php - Firebase用PHP过滤数据-LMLPHP

最佳答案

如果阅读错误消息,您会发现它显示:


  索引未定义,在路径“ / tbl_admin”中添加“ .indexOn”:“用户名”


您可以通过导航到项目的Firebase Web控制台中的“数据库规则”部分来添加这些规则(https://console.firebase.google.com/project/_/database/_/rules应该将您带到那里)并添加索引,以使您的规则如下所示:

{
    "rules": {
        ".read": false,
        ".write": false,
        "tbl_admin": {
          ".indexOn": ["username"]
        }
    }
}


重要的部分是tbl_admin字段,如果规则^^中已经有其他设置,则不要仅复制并粘贴代码段。

php - Firebase用PHP过滤数据-LMLPHP

07-24 18:10