【发布时间】:2015-07-09 00:02:05
【问题描述】:
我有一组分层数据,我想从 Firebase 检索信息。下面是我的数据的样子:
但是,我的问题是:查看数据的结构后,当我想获取attendee 的name 或object id 时,我必须执行以下代码:
func getAttendees(child: NSString, completion: (result: Bool, name: String?, objectID: String?) -> Void){
var attendeesReference = self.eventsReference.childByAppendingPath((child as String) + "/attendees")
attendeesReference.observeEventType(FEventType.ChildAdded, withBlock: { (snapshot) -> Void in
//Get the name/object ID of the attendee one by one--inefficient?
let name = snapshot.value.objectForKey("name") as? String
let objectID = snapshot.value.objectForKey("objectID") as? String
if snapshot != nil {
println("Name: \(name) Object ID: \(objectID)")
completion(result: true, name: name, objectID: objectID)
}
}) { (error) -> Void in
println(error.description)
}
}
现在这会遍历每个参加者的孩子,并一一获取名称和对象 ID。当函数完成时,我将每个值存储到字典中。这样做后,此函数会被多次调用,并且可能非常慢,尤其是在多次往返数据库时。有没有更有效的方法来做到这一点?我试图查看FEeventType.Value 但这似乎返回了attendees 孩子中的所有内容,而我真正想要的只是每个attendee 中的name 和objectID 存储到某种字典中。任何帮助,将不胜感激。谢谢!
【问题讨论】:
-
在下面回答,但下次请以文本格式包含数据。这样我就可以简单地修改它,而不是花时间输入数据。
标签: ios swift firebase firebase-realtime-database hierarchical-data