假设我有一些像这样的代码
run
我在let ref = Database.database().reference()
let refTwo = Database.database().reference()
func getPosts() {
ref.child("posts").queryOrderedByKey().observeSingleEvent(of: .value, with: { snap in
// get some posts
})
}
func getOtherStuff() {
refTwo.child("child").queryOrderedByKey().observeSingleEvent(of: .value, with: { snap in
// get some other data
})
refTwo.removeAllObservers()
}
中呼叫getPosts()
和getOtherStuff()
我是否需要使用两个不同的引用,或者我可以只使用一个参考来进行所有查询?
我知道如果你在两个不同的位置使用.observe有相同的参考,那么数据只返回一次。所以你不想重新使用那个参考?但是,我现在只使用viewDidLoad()
,所以我不确定。另外,如果他们在同一个孩子身上会有关系吗?
答案 0 :(得分:1)
Firebase数据库引用只是对数据库中位置的轻量级引用。在你附加一个监听器或写入它们之前,没有任何事情发生。
在您共享的方案中无需使用单独的侦听器。我会删除对removeAllObservers
的调用:因为您正在调用observeSingleEvent
,所以观察者会在第一次触发后自动删除。
答案 1 :(得分:0)
在Firebase 4.4中,您只需使用
即可var ref = Database.database().reference()
你也可以在左侧列表中看到基本结构的“读写数据”。
示例:
self.ref.child("users").child(user!.uid).setValue(["mentionName": ""])
self.ref.child("users").child(user!.uid).child("email").setValue(self.emailField.text)