我有一个节点,我试图获取该值的关键字。节点看起来是这样的:获取关键值但不是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()'获取所有房间名称 –