【发布时间】:2020-11-07 09:40:02
【问题描述】:
我想使用 firebase 检索一些数据并将其存储在一个空数组中。之后我必须将它存储在一个全局数组中(是的,我知道我不应该这样做)。 但是数组只存储最后一个变量。我可以假设这是因为 firebase 在此函数中检索数据的方式。 但我想将所有值附加到数组中。
也许有人可以帮助我:)
static func jobs(for user: User, completion: @escaping ([TeamMember]) -> Void) {
let ref = Database.database().reference().child("team").child(user.uid)
ref.observe(DataEventType.value, with: { (snapshot) in
for case let child as DataSnapshot in snapshot.children {
guard let dict = child.value as? [String: Any] else {
print("Error")
return completion([])
}
let memberJob = dict["memberJob"] as! String
print("memberJob: \(memberJob)")
var memberJobs: [String] = []
memberJobs.append(memberJob)
for job in memberJobs {
print("New Job incoming: ", job)
}
globalJobs = memberJobs
}
})
}
【问题讨论】:
-
为什么要检索数据并将其存储在空数组中,然后再将其存储在全局数组中?你为什么不把它存储在全局数组中。另外,在这个用例中什么是“全局数组”?此外,您已经指定了一个完成处理程序,但除了在 child.value 为 nil 时返回一个空数组之外,您没有对它做任何事情?有几个很好的答案,但不了解您要做什么,这是猜测(尽管 good 猜测)。所以,如果你能稍微给我们一些线索,我们可以提供更准确的答案。