如何在 Flutter 项目中使用新的 Firebase Firestore 数据库(多区域“nam5”)

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

问题:

我有一个现有的 Firebase 项目,我在“nam5”多区域位置创建了一个新的 Firestore 数据库,名为“newDb”,以提高效率。但是,我在设置 Flutter 项目时遇到问题,以便所有 Firestore 操作都在这个新数据库而不是默认数据库上执行。

代码:

这是我当前设置的片段:

在Main.dart中

  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);

在 firebase_options.dart 中

  static const FirebaseOptions web = FirebaseOptions(
    apiKey: 'xAIzaSyBISlt7cxxxxxxxxxxxxxxxxxxx',
    appId: '1:xxxxxxxxxxxxx:web:xxxxxxxxxxxxx',
    messagingSenderId: 'xxxxxxxxxxxxxx',
    projectId: 'xxxxx-ctd29',
    authDomain: 'xxxxx-ctd29.firebaseapp.com',
    storageBucket: 'xxxxx-ctd29.appspot.com',
    measurementId: 'G-xxxxxxxxxx',
  );

  static const FirebaseOptions android = FirebaseOptions(
    apiKey: 'AIzaSyAu8is_gfH5_xxxxxxxxxxxxxxxxxxx',
    appId: '1:xxxxxxxxxxxxx:android:xxxxxxxxxxxxxxxxxxxxxxx',
    messagingSenderId: 'xxxxxxxxxxxxxxx',
    projectId: 'xxxxx-ctd29',
    storageBucket: 'xxxxxx-ctd29.appspot.com',
  );

问题:

尽管使用新配置设置我的项目,所有 Firestore 操作仍然与默认数据库而不是“newDb”交互。

我尝试过的:

我已经使用

DefaultFirebaseOptions.currentPlatform
初始化了 Firebase,期望它连接到“newDb”数据库。但是,操作继续定向到默认数据库,我需要有关如何正确配置我的 Flutter 项目以将“newDb”数据库用于所有 Firestore 操作的指导。

flutter firebase google-cloud-firestore
1个回答
0
投票

听起来您有一个包含多个 Firestore 数据库的项目,并且您想在 Flutter 应用程序中使用非默认数据库。

这是不受

FirebaseOptions
控制的东西(如果您检查这些值,您会发现其中没有任何内容标识特定的 Firestore 数据库)。相反,您可以在获取 Firestore 实例时使用
instanceFor
工厂方法
及其
databaseId
参数来指定数据库名称。

所以:

final db = FirebaseFirestore.instanceFor(Firebase.app(), "your non-default database ID");
© www.soinside.com 2019 - 2024. All rights reserved.