使用swift从firebase获取数据范围

时间:2017-07-31 10:42:58

标签: swift firebase

我想问这个问题。问题是如何从firebase获得特定的数据范围?

我在firebase上有这样的表:

  "users" : {
"Jz3IpatRWiWoDbiYM62q6qbHB503" : {
  "email" : "Kaanozdemir@gmail.com",
  "lastName" : "Ozdemir",
  "name" : "Kaan"
},
"PmeYYFiac0c55fU2sFpnTP308mC3" : {
  "email" : "kevinhart@gmail.com",
  "lastName" : "Hart",
  "name" : "Kevin"
},
"r0bMqSGCWihFi2EF4u6ckSzLP8v1" : {
  "email" : "Marcusalvarez@gmail.com",
  "lastName" : "Alvarez",
  "name" : "Marcus"
},
"A3tmSSGCWihFi2EF4u6ckSzLP8c1" : {
  "email" : "taylorswift@gmail.com",
  "lastName" : "Swift",
  "name" : "Taylor"
},
"3SUTsiGCWihFi2EF4u6ckSzLP8v2" : {
  "email" : "jimmyfellon@gmail.com",
  "lastName" : "Fellon",
  "name" : "Jimmy"
},
"lgSit3GCWihFi2EF4u6ckSzLP8u3" : {
  "email" : "jaxteller@gmail.com",
  "lastName" : "Teller",
  "name" : "Jax"
}

例如,我想让用户的价值在2到4之间[2 - 4](Marcus Alvarez - Taylor Swift - Jimmy Fellon)。

有没有办法做那个服务器端?我不想获得所有数据并选择我想要的值。有人知道吗?

1 个答案:

答案 0 :(得分:0)

更改您的JSON数据库结构以在每个节点中包含索引:

"users"  : {
     "autoID1" : {
         "email" :.....,
         "lastName" : ......,
         "name" :.......,
         "index" : //e.g.. 1,2,3,4......  
            }
      },
"noOfUsers" : 223,

如果您通过应用程序追加此用户节点,您也可以跟踪数据库节点users中的用户数,并在添加新用户时不断更新noOfUsers。并设置下一个索引号,只需检索该节点值,即223并查看它然后递增noOfUsers ......

要检索2-4 ..现在您可以使用:

Database.database().reference().child("users").queryOrdered(byChild: "index").queryStarting(atValue: "2").queryEnding(atValue: "4").observe....