我有一個節點,我試圖獲取該值的關鍵字。節點看起來是這樣的:獲取關鍵值但不是Firebase的根值
roomMembers
- "user1_user2" (roomname)
- user1: true
- user2: true
- "user1_user3"
- user1: true
- user2: true
我試圖檢索和了解「user1_user2」和「user1_user3」並舉使用.Value
和.ChildAdded
。
let membersRef = Firebase(url: self.dataURL + "/roomMembers")
membersRef.queryOrderedByChild("user1").observeSingleEventOfType(.Value, withBlock: { snapshot in
snapshot.value // returns the objects as `[String: [String:Bool]]`
snapshot.key // returns 'roomMembers'
})
當我使用.ChildAdded
,它只返回一個值
membersRef.queryOrderedByChild("user1").observeEventOfType(.ChildAdded, withBlock: { snapshot in
snapshot.key // returns the right level, but only returns "user1_user2".
snapshot.value // also returns only one value
我怎樣才能獲得 「user1_user2」 和 「user1_user3」(所有roomnames)使用.Value
和.ChildAdded
單個查詢?
編輯:
假設我有一個這樣的節點:
lastMessages
- "user1_user2"
- -KJrqHaMzA9Hi-RS_ieV (timestamp'ed id)
- sender
- message
- opponent_seen
- "user1_user3"
- -KJrqHaMzA9Hi-RS_ieB
- sender
- message
- opponent_seen
我怎樣才能獲得時間戳鍵和他們的價值觀?
使用你添加的'.Value'代碼有什麼問題? – Shubhank
在'.Value'中,'snapshot.value'返回整個對象爲'[「user1_user2」:[「user1」:true,「user2」],「user1_user3」:[「user1」:true,「user2」 ]]',我無法弄清楚如何獲取房間名稱。另外,我認爲我不應該爲'.Value'使用'observeEventType',因爲它不會停止觀察。不過,我想我應該分別處理'.ChildAdded'和'.ChildChanged'。那是錯的嗎? – senty
使用'snapshot.value.allKeys()'獲取所有房間名稱 –