我需要多个Firebase数据库引用吗?

时间:2017-09-03 22:04:09

标签: swift firebase firebase-realtime-database

假设我有一些像这样的代码

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(),所以我不确定。另外,如果他们在同一个孩子身上会有关系吗?

2 个答案:

答案 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)

参考:https://firebase.google.com/docs/database/ios/start