在某些节点上启用Firebase持久性

时间:2019-03-01 18:00:33

标签: firebase firebase-realtime-database

对于一个我们要尝试使用Firebase数据库的新项目,其想法是存储SEO,产品,用户首选项等。

我们期望SEO数据将成为更大的空间消耗者,并且客户无需将其保存在本地,因为这些信息仅用于统计目的

是否可以仅在某些节点上启用Firebase数据库持久性,而排除其他节点?

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

持久性只能配置为全部或不配置。实时数据库和Cloud Firestore都是如此。没有细化的持久性设置。请随时file a feature request

答案 1 :(得分:0)

要执行此操作,您可以配置两个单独的Firebase实例-一个实例的持久性已打开,而另一个实例的持久性已关闭,即使它们都指向同一个数据库(也可以为多个不同的数据库进行配置)是为此而创建的。

下面的示例在 Swift 中,但是我想在其他平台上也应该有相同的示例:

if let path = Bundle.main.path(forResource: firebasePlistFileName, ofType: "plist"), let options = FirebaseOptions(contentsOfFile: path) {
     FirebaseApp.configure(options: options)
     FirebaseApp.configure(name: "DatabaseWithoutPersitence", options: options)
}
Database.database().isPersistenceEnabled = true
if let appWithoutPersistence = FirebaseApp.app(name: "DatabaseWithoutPersitence") {
     Database.database(app: appWithoutPersistence).isPersistenceEnabled = false
}

当我想持久访问数据库时,我通过Database.database().reference()来访问共享数据库,如果需要新的数据,我可以通过Database.database(app: FirebaseApp.app(name: "DatabaseWithoutPersitence")!).reference()来指代非持久数据库。