假设我有这样的代码
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()
}
我在 viewDidLoad()
中调用了 getPosts()
和 getOtherStuff()
我需要使用两个不同的引用还是我可以对我的所有查询使用一个引用?
我知道如果您在两个不同的位置使用 .observe 有相同的引用,则数据只会返回一次。所以你不想重新使用那个引用?但是,这里我只是使用 .observeSingleEvent
所以我不确定。此外,如果他们是同一个 child ,这有关系吗?
最佳答案
Firebase 数据库引用只是对数据库中位置的轻量级引用。在您附加一个监听器或写信给他们之前,什么都不会发生。
在您分享的场景中不需要使用单独的监听器。我会删除对 removeAllObservers
的调用:因为您正在调用 observeSingleEvent
,所以观察者在第一次触发后会自动删除。
关于swift - 我需要多个 Firebase 数据库引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46028203/