2017-07-31 111 views
0

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

我有表上火力这样的:

"users" : { 
"Jz3IpatRWiWoDbiYM62q6qbHB503" : { 
    "email" : "[email protected]", 
    "lastName" : "Ozdemir", 
    "name" : "Kaan" 
}, 
"PmeYYFiac0c55fU2sFpnTP308mC3" : { 
    "email" : "[email protected]", 
    "lastName" : "Hart", 
    "name" : "Kevin" 
}, 
"r0bMqSGCWihFi2EF4u6ckSzLP8v1" : { 
    "email" : "[email protected]", 
    "lastName" : "Alvarez", 
    "name" : "Marcus" 
}, 
"A3tmSSGCWihFi2EF4u6ckSzLP8c1" : { 
    "email" : "[email protected]", 
    "lastName" : "Swift", 
    "name" : "Taylor" 
}, 
"3SUTsiGCWihFi2EF4u6ckSzLP8v2" : { 
    "email" : "[email protected]", 
    "lastName" : "Fellon", 
    "name" : "Jimmy" 
}, 
"lgSit3GCWihFi2EF4u6ckSzLP8u3" : { 
    "email" : "[email protected]", 
    "lastName" : "Teller", 
    "name" : "Jax" 
} 

例如,我想获得2和4之间[2 - 4]的用户的值(马库斯阿尔瓦雷斯 - 泰勒夫特 - 麦Fellon)。

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

+2

你检查过startAt()和endAt()方法吗? –

+0

是的,我已经检查,但我找不到解决我的问题的任何方法。这两个方法在AnyObject内部进行。当我尝试将它放入Int中时,我收到错误。 –

+1

请分享[重现您卡住的最小代码](http://stackoverflow.com/help/mcve)。如果你分享相关的JSON(如文本,没有截图),这也会有所帮助。您可以通过点击[Firebase数据库控制台](https://console.firebase.google.com/project/_/database/data)中的“导出JSON”链接来获取此信息。 –

回答

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.... 
+0

谢谢你的男人。我真的很感激。这就是我要的 ! –