ios - Firebase Firestore 在同一个应用中使用两个不同的实例
问题描述
我目前正在 iOS 应用程序中使用 Firebase Firestore。有一个法律用例,用户必须先接受同意,然后我才能将他们的数据上传到 Firebase,但我需要让用户已经可以保存数据,即使他们尚未同意同意。
我的问题是,是否可以在一个 iOS 应用程序中拥有两个不同的 Firestore 数据库实例。一个仅离线存储数据且不同步的实例和一个正在同步的实例。然后我可以在运行时决定在哪里存储数据。
有这方面的文件或经验吗?
解决方案
绝对可以在单个应用程序中访问多个 Firestore 数据库(或其他 Firebase 资源)。但只有其中一个可以从GoogleService-Info.plist
. 您必须根据辅助文件中的信息从代码中初始化其他的GoogleService-Info.plist
。
基本方法是首先使用FirebaseOptions
第二个项目的配置数据创建一个对象:
// Configure with manual options. let secondaryOptions = FirebaseOptions(googleAppID: "1:27992087142:ios:2a4732a34787067a", gcmSenderID: "27992087142") secondaryOptions.bundleID = "com.google.firebase.devrel.FiroptionConfiguration" secondaryOptions.apiKey = "AIzaSyBicqfAZPvMgC7NZkjayUEsrepxuXzZDsk" secondaryOptions.clientID = "27992087142-ola6qe637ulk8780vl8mo5vogegkm23n.apps.googleusercontent.com" secondaryOptions.databaseURL = "https://myproject.firebaseio.com" secondaryOptions.storageBucket = "myproject.appspot.com"
然后使用它来初始化辅助App
对象以获取您需要的 Firebase 服务:
// 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)
另见:
- 关于在您的应用程序中使用多个项目的 Firebase 文档。
推荐阅读
- python - 更改 matplotlib 图形的背景颜色
- sqlite - 在flutter中使用来自sqlite数据库的数据填充下拉菜单
- python-3.x - 为 100 个标签训练 BERT 多标签分类器会大大降低准确度吗?
- python - 相当于熊猫中的 fct_lump
- kotlin - 我们如何摆脱 IntelliJ IDEA for Kotlin 中的导入语法错误?
- sql - 仅按最早日期选择唯一 ID
- javascript - 如果将 Map 的值保存为数组而不是遍历地图,是否可以节省时间复杂度?
- geolocation - 使用区块链跟踪和追踪地理位置和温度
- javascript - 如何读取 JavaScript 中内置的可迭代对象记录的值?
- python - 如何根据复杂的字符串列对数据框进行排序?