如何在Firebase中执行以下查询? (不止一个条件)

时间:2014-12-11 20:42:52

标签: android firebase

考虑以下firebase结构:

{
  "users" : {
    "00:03:aa:dc:1c:2b" : {
      "firstName" : " Ofek",
      "groupName" : "thailand",
      "lastName" : "Ron",
      "registration" : {
        "type" : "regular",
        "time" : 1418288589636
      },
      "phoneNumber" : "345345345"
    },
    "04:46:65:8D:60:C6" : {
      "firstName" : " Ofek",
      "groupName" : "thailand",
      "lastName" : "Ron",
       "registration" : {
        "type" : "regular",
        "time" : 1418288589630
      },
      "phoneNumber" : "345345345"
    },
  }
}

如何实现以下查询:

SELECT * FROM USERS WHERE groupName="thailand" and registration.time>=1418288589631

我试图这样做:

fireBase.orderByChild("groupName").startAt("thailand").endAt("thailand").orderByChild("time").startAt("1418288589631")

但由于firebase不允许多个orderbys而引发异常......

有什么想法吗?

1 个答案:

答案 0 :(得分:7)

Firebase目前每个查询仅支持一个orderBy

因此,如果您想要在多个属性上过滤(或订购),您必须在JavaScript代码中对客户端进行额外的过滤(或排序),否则您将不得不提出了自己的索引方案,它结合了属性。