首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一个应用程序中使用两个不同的实例

问在同一个应用程序中使用两个不同的实例
EN

Stack Overflow用户
提问于 2020-02-11 13:34:41
回答 2查看 1.3K关注 0票数 3

我目前正在iOS应用程序中使用Firestore。有一个合法的用例,用户必须先接受同意后,我才可以将他们的数据上传到Firebase,但我有必要让用户已经可以保存数据,即使他们还没有同意。

我的问题是,是否有可能在一个iOS应用程序中有两个不同的Firestore数据库实例。一个只在离线存储数据而不同步的实例和一个同步的实例。然后,我可以在运行时决定在哪里存储数据。

有没有这方面的文件或经验?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-11 14:11:40

在一个应用程序中绝对可以访问多个Firestore数据库(或其他Firebase资源)。但是其中只有一个可以从GoogleService-Info.plist初始化。另一个您必须根据辅助GoogleService-Info.plist中的信息从代码中初始化。

这方面的基本方法是首先使用第二个项目的配置数据创建一个FirebaseOptions对象:

//使用手动选项进行配置。设"com.google.firebase.devrel.FiroptionConfiguration“= FirebaseOptions(googleAppID:"1:27992087142:ios:2a4732a34787067a",gcmSenderID:"27992087142") secondaryOptions.bundleID = "AIzaSyBicqfAZPvMgC7NZkjayUEsrepxuXzZDsk”secondaryOptions.clientID = "https://myproject.firebaseio.com“secondaryOptions.storageBucket = "myproject.appspot.com”

然后使用它初始化辅助App对象以获得所需的Firebase服务:

代码语言:javascript
复制
// Configure an alternative FIRApp.
FirebaseApp.configure(name: "secondary", options: secondaryOptions)

// Retrieve a previous created named app.
guard let secondary = FirebaseApp.app(name: "secondary")
  else { assert(false, "Could not retrieve secondary app") }

let secondaryDb = Firestore.firestore(app: secondary)

另见:

票数 3
EN

Stack Overflow用户

发布于 2020-12-23 18:50:54

我们的应用程序也有类似的情况--一个法律上的用例要求用户选择在云中存储数据。为此,我们需要一种存储解决方案,允许某些数据仅在本地存储,而一些数据则在用户选择进入时同步到云端。我们考虑关闭离线数据的Fi还原网络活动: Firestore.firestore().disableNetwork(completion:)

然而,我们联系了Google,他们的首相建议

Firestore不是一个很好的离线数据库。它是为最终将同步到服务器的数据设计的。离线功能是为了掩盖暂时的连接损失。随着挂起的写入操作(也称为脱机写入)的数量增加,性能下降,与普通的设备上移动数据库相比,大型脱机数据集上的查询性能非常差。虽然他们可能可以使用两个数据库的解决办法,但我通常建议他们只为他们的离线数据选择一个完全不同的数据存储。SQLite是标准选项,但还有许多其他选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60170083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档