2017-07-31 109 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

謝謝你的男人。我真的很感激。這就是我要的 ! –