2016-07-04 30 views
2

以下是我的firebase和代碼,我想檢索User中具有User John鍵的所有活動。 ssswift firebase檢索對象的子對象具有相同的鍵的所有對象

let ref = FIRDatabase.database().reference().child("activities/") 
ref.queryOrderedByChild("User").queryEqualToValue("John").observeSingleEventOfType(.Value, 
     withBlock:{ 
      (snapshot) in 

      for record in snapshot.children 
      { 

      } 
     }) 
+0

請更新了結果/異常。 –

回答

0

這是不是在你的查詢,因爲工作,你正試圖採取一切具有屬性User == "John"的活動時,用戶的真正價值是這樣一個對象:

{ 
    "John": { 
    "age": 21 
    } 
} 

爲了解決這個問題你應該改變你的數據結構來創建一個節點,在那裏你保存所有的用戶,並且只保留users/userID/activities這個活動的id。例如,這將是構建您的數據的更好的方式:

{ 
    "activities": { 
     "cycling": { 
      "users": { 
       "user1": true, 
       "user2": true 
      } 
     }, 
     "running": { 
      "users": { 
       "user1": true 
      } 
     } 
    }, 
    "users": { 
     "user1": { 
      "name": "John", 
      "age": 21, 
      "activities": { 
       "cycling": true, 
       "running": true, 
      } 
     }, 
     "user2": { 
      "name": "Tim", 
      "age": 20, 
      "activities": { 
       "cycling": true 
      } 
     } 
    } 
} 

然後你可以使用 讓我知道,如果這有助於;)

+0

如果我將數據結構更改爲此,如何檢索用戶由user1組成的活動。這種情況下,檢索活動「cicling」和「跑步」? – Poke

+0

行動,我編輯了我的答案! 你應該根據你想要檢索它們的方式來構造你的數據,所以這可能是一個很好的解決方案 –

相關問題