如何合并两个 Firebase 快照
How to merge two Firebase snapshots
我是 运行 Firebase 中的嵌套查询(使用 Swift)。这returns两张快照。通常,当只有一个快照时,我将查询结果存储在字典中
var query1 = [FIRDataSnapshot]! = []
query1.append(snapshot)
有谁知道如何合并两个快照来创建一个字典条目?
这些块看起来像这样:
_refHandle = FirebaseRef.child("query1key").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
let key2 = snapshot.value?.objectForKey("key2") as! String
self.FirebaseRef.child("query2key").child(key2).observeSingleEventOfType(.Value, withBlock: { (snapshot2) in
// merge the two snapshots
})
})
一旦两个快照都可用,您就可以从中获取必要的值并根据该信息创建一个新对象。
class MergedObject {
var value1: String!
var value2: String!
init(value1: String!, value2: String!) {
self.value1 = value1
self.value2 = value2
}
}
然后将该对象添加到您的字典中。
_refHandle = FirebaseRef.child("query1key").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
let key2 = snapshot.value?.objectForKey("key2") as! String
self.FirebaseRef.child("query2key").child(key2).observeSingleEventOfType(.Value, withBlock: { (snapshot2) in
var value1 = snapshot.childSnapshotForPath("value1").value as! String
var value2 = snapshot2.childSnapshotForPath("value1").value as! String
var mergedObject = MergedObject(value1: value1, value2: value2)
})
})
我是 运行 Firebase 中的嵌套查询(使用 Swift)。这returns两张快照。通常,当只有一个快照时,我将查询结果存储在字典中
var query1 = [FIRDataSnapshot]! = []
query1.append(snapshot)
有谁知道如何合并两个快照来创建一个字典条目? 这些块看起来像这样:
_refHandle = FirebaseRef.child("query1key").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
let key2 = snapshot.value?.objectForKey("key2") as! String
self.FirebaseRef.child("query2key").child(key2).observeSingleEventOfType(.Value, withBlock: { (snapshot2) in
// merge the two snapshots
})
})
一旦两个快照都可用,您就可以从中获取必要的值并根据该信息创建一个新对象。
class MergedObject {
var value1: String!
var value2: String!
init(value1: String!, value2: String!) {
self.value1 = value1
self.value2 = value2
}
}
然后将该对象添加到您的字典中。
_refHandle = FirebaseRef.child("query1key").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
let key2 = snapshot.value?.objectForKey("key2") as! String
self.FirebaseRef.child("query2key").child(key2).observeSingleEventOfType(.Value, withBlock: { (snapshot2) in
var value1 = snapshot.childSnapshotForPath("value1").value as! String
var value2 = snapshot2.childSnapshotForPath("value1").value as! String
var mergedObject = MergedObject(value1: value1, value2: value2)
})
})