我有一个现有的 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 操作的指导。
听起来您有一个包含多个 Firestore 数据库的项目,并且您想在 Flutter 应用程序中使用非默认数据库。
这是不受
FirebaseOptions
控制的东西(如果您检查这些值,您会发现其中没有任何内容标识特定的 Firestore 数据库)。相反,您可以在获取 Firestore 实例时使用 instanceFor
工厂方法 及其 databaseId
参数来指定数据库名称。
所以:
final db = FirebaseFirestore.instanceFor(Firebase.app(), "your non-default database ID");