首页 > 解决方案 > 使用不同键的 Firebase REST API 查询

问题描述

所以这是我现在的 Firebase DB 的结构,我正在使用 Firebase REST API:

"company": {
      
   company1_id {
        id: company_id,
        userId: userid,
        name: name
        //someotherstuff
}
    company2_id {
        id: company_id,
        userId: userid,
        name: name,
        //someotherstuff
}

}

Soo,现在我通过以下方式获取属于一位用户的公司:

"firebasedbname.firebaseio.com/company.json?orderBy="userId"&equalTo=userId"

这工作得很好并获得了相应的数据,但现在我希望它按名称按字母顺序排列公司,然后我试试这个:

"firebasedbname.firebaseio.com/company.json?orderBy="name"&equalTo=userId"

但这一次,它没有返回任何数据!即使我已将 .indexOn: "name" 添加到公司节点。任何帮助将不胜感激。

标签: firebaseapirestfirebase-realtime-databasequerying

解决方案


文档中所述,如果要过滤数据,您需要首先“指定您希望如何使用orderBy参数过滤数据”,然后您需要“与其他五个参数中的任何一个组合 : , , , ,和“。orderBylimitToFirstlimitToLaststartAtendAtequalTo

所以如果你.indexOn: "name"company节点上添加了“an”,就意味着你打算查询如下:

https://xxxx.firebaseio.com/company.json?orderBy="name"&equalTo="companyName"

您不能按 排序(company) name和过滤userId

如果要获取与特定用户对应的所有公司并按公司名称对其进行排序,则需要在调用 REST API 的客户端/应用程序中使用?orderBy="userId"&equalTo=userId" 进行排序。


推荐阅读