【问题标题】:Firebase REST API query with different keys使用不同键的 Firebase REST API 查询
【发布时间】:2020-11-11 15:45:23
【问题描述】:

这就是我现在的 Firebase 数据库的结构,我正在使用 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" 添加到公司节点。任何帮助将不胜感激。

【问题讨论】:

    标签: firebase api rest firebase-realtime-database querying


    【解决方案1】:

    doc 中所述,如果要过滤数据,首先需要“指定使用orderBy 参数过滤数据的方式”,然后需要“组合 orderBy 与其他五个参数中的任何一个:limitToFirstlimitToLaststartAtendAtequalTo"。

    所以如果你在company节点上添加了“一个.indexOn: "name"”,则表示你打算查询如下:

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

    您不能通过(company) name 订购并在userId 上过滤。

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

    【讨论】:

    • @MonishB 嗨,你有时间看答案吗?
    猜你喜欢
    • 2018-09-18
    • 2018-05-08
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多