gpt4 book ai didi

swift - 如何合并两个 Firebase 快照

转载 作者:行者123 更新时间:2023-11-28 06:36:53 25 4
gpt4 key购买 nike

我在 Firebase 中运行嵌套查询(使用 Swift)。这将返回两个快照。通常,当只有一个快照时,我将查询结果存储在字典中

var query1 = [FIRDataSnapshot]! = []
query1.append(snapshot)

有谁知道如何合并两个快照来创建一个字典条目?这些 block 看起来像这样:

_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)
})
})

关于swift - 如何合并两个 Firebase 快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38893646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com