firebase 如何设置2个Cloud Firestore项目链接到一个Flutter应用程序?

szqfcxe2  于 2023-04-07  发布在  Flutter
关注(0)|答案(1)|浏览(134)

我如何设置2个Cloud Firestore项目链接到一个Flutter应用程序并同时工作?
Firebase网站上没有关于如何将2个Firebase数据库直接连接到Flutter应用的文档,以便当应用在应用商店时,应用可以与2个数据库通信。例如,我不希望有2个环境,如生产和调试,然后在上传时编译其中一个-我希望应用与生产中的2个数据库通信。
创建另一个firebase.options文件是可以的-但是随之而来的问题是有2个GoogleService-Info.plist文件和2个google-services.json文件。
在配置第二个数据库时,如何使用Firebase CLI来区分和定位它们?

kkbh8khc

kkbh8khc1#

Doug的回答是正确的。解决此问题的过程如下:
1.编写以下项目目录终端:
flutterfire configure -p yourSecondDatabaseName -o lib/yourNewFirebaseOptionsFile.dart
这将创建第二个firebase_options文件(在这里它被命名为yourNewFirebaseOptionsFile,但它可以是任何东西。
1.选择您需要的平台(在我的情况下,它是iOS和Android)。
1.然后Firebase CLI应该询问有关覆盖Firebase AppID Files/GoogleService-Info.plist files/google-services.json文件的问题。对所有这些都输入NO-我们不想从第一个项目中删除原始文件。
1.在我的例子中,我遇到了在这些字段中放NO的未处理异常。它说“Firebase应用程序ID文件已经是最新的”。
1.您的应用及其各自的平台应在“项目设置”、“常规”下注册。
1.使用以下设置在main()中初始化第二个Firebase示例并链接到第二个数据库:

if (defaultTargetPlatform == TargetPlatform.android) {
        await Firebase.initializeApp(
          //Android app ID's from firebase console of project 2
            name: 'secondDatabase',
            options: const FirebaseOptions(
              apiKey: '',
              appId: '',
              messagingSenderId: '',
              projectId: '',
              storageBucket: '',
            ));
  

    } else if (defaultTargetPlatform == TargetPlatform.iOS) {
        await Firebase.initializeApp(
          //iOS app ID's from firebase console of project 2
            name: 'secondDatabase',
            options: const FirebaseOptions(
              apiKey: '',
              appId: '',
              messagingSenderId: '',
              projectId: '',
              storageBucket: '',
            ));
      }

您可以在为第二个数据库生成的新firebase选项文件中找到这些字段的值。
1.最后一步:示例化一个新的FirebaseFirestore对象,现在根据需要从第二个数据库读取/写入:

FirebaseFirestore _firestore2 = FirebaseFirestore.instanceFor(app: Firebase.app('secondDatabase'))

相关问题