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

标签 swift firebase firebase-realtime-database

假设我有这样的代码

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/

相关文章:

ios - tableview 单元格内的类似 Firebase 的系统

swift - 如何将类型应用于 NSFetchRequest 实例?

ios - 如何检查 iOS 中的深色模式?

ios - 从 Alamofire 闭包返回一个值

Firebase Cloud Function 配置以访问其他项目数据库

ios - 如何处理 Swift 中 Firebase 数据库中的 'Assertion Failure' Collectionview 崩溃?

ios - 将 Watch App 启动到中间 View

java - 谷歌登录 ApiException : 10:

javascript - Firebase 数据库 - 防止写入指定路径以外的所有路径

javascript - firebase 在 child 的 child 的值(value)上使用 orderByChild