在原生 iOS 和 Flutter 中初始化并使用 Firestore

问题描述 投票:0回答:1

我们的应用程序是为 iOS 和 Android 开发的,具有单独的代码库,我们希望开始使用 Flutter 来实现更快速的开发。我们已经在本机代码中使用 Firebase SDK 来实现各种服务,例如身份验证、FCM 和 Firestore。我们开发了一个 Flutter 模块,它基本上使用相同的 Firebase 功能,利用 Firebase Flutter 插件。这对于 Android 来说一切正常,但 iOS 则完全不同。

当我打开应用程序并导航到 Flutter 屏幕时,应用程序崩溃并出现以下异常:

由于未捕获的异常“FIRIllegalStateException”而终止应用程序,原因:“Firestore 实例已启动,且无法再更改其设置。”您只能在调用 Firestore 实例上的任何其他方法之前设置设置。'

事实上,GitHub 上的这个已关闭问题描述了完全相同的问题。维护人员建议仅在 Flutter 中执行所有 Firestore 操作。这给我们带来了一个问题,因为我们已经在本机代码中拥有如此多的功能,并且在我们开始集成第一个 Flutter 屏幕之前可能需要进行大量重构。

所以,我认为我的问题由两部分组成:

  1. 是否可以在本机 iOS (Swift UI) 和 Flutter 中初始化和使用 Firestore(以及其他 Firebase 功能)?
  2. 如果没有,是否有一种低成本的解决方案来创建从本机到 Flutter 代码的适配器来执行 Firestore 操作?
ios flutter firebase google-cloud-firestore
1个回答
0
投票

看起来 Firebase 和 Firestore 已经在 iOS 本机端创建了一个名为 DEFAULT 的 App 实例,并且当您调用 FirebaseFirestore.instance.collection('users').get(); 时无法重新创建新的 Firestore 实例。

我建议您通过在 Flutter 中初始化 Firebase 来传递名称变量来创建另一个实例,如下所示:

最终应用程序=等待Firebase.initializeApp(名称:“ANOTHER_INSTANCE”);


这应该是一条评论,指向之前的问题接受了这个作为正确答案,但我的代表数还不到 50 次,所以我无法在这里发表评论。

© www.soinside.com 2019 - 2024. All rights reserved.