将来自同一帐户的两个firebase项目(更具体地说,两个不同的实时数据库)放入flutter项目中

eqoofvh9  于 2023-01-21  发布在  Flutter
关注(0)|答案(1)|浏览(67)

我有一个名为"twoaccountfirebasedifferentiinjustproject"的flutter web项目(我创建这个项目只是为了解决这个主题中的问题),这个项目在我的github(https://github.com/luciano-da-cruz-jr/twoaccountfirebasedifferentinjustproject)上,当找到这个解决方案时,任何人都可以使用它。

我创建了一个firebase帐户,并在此帐户上创建了两个项目:- twoaccountfirebaseone-twoaccountfirebasetwo每个项目都有一个正在使用的firebase服务,在本例中,每个项目都有一个实时数据库。
我需要的是能够在单个项目中使用实时数据库,在本例中,在项目中:"twoaccountfirebasedifferentiinjustproject"."twoaccountfirebaseone"的实时数据库已经被"flutter configure"配置好了,它已经自动为我创建了文件"google-services.json"和文件"firebase_options. dart",我只需要修改"main. dart"就可以保持这样:

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_database/firebase_database.dart';
import 'package:flutter/material.dart';
import 'firebase_options.dart';

void main() async{
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(
    MaterialApp(
      home: const MyApp(),
    ),);
}

通过这种方式,我已经可以访问和操作"twoaccountfirebaseone"项目的实时数据库。正如我们在"main.dart"文件的第61到70行所看到的:

FirebaseDatabase database = FirebaseDatabase.instance;

final date = DateTime.now().toString();
final timenow = date.split('.');

final DBRef = FirebaseDatabase.instance.ref('example/'+timenow[0]);

await DBRef.set({
  'timenow': timenow[0],
});

结果:

在上面的例子中插入随机信息!在下面的例子中,删除整个数据库(代码来自文件"main. dart",行:第89条至第96条):

FirebaseDatabase database = FirebaseDatabase.instance;

 final date = DateTime.now().toString();
 final timenow = date.split('.');

 final DBRef = FirebaseDatabase.instance.ref('/');

 await DBRef.set(null);

结果:

在这个项目中,我想添加实时数据库"twoaccountfirebasetwo",将其与已经配置并工作的实时数据库"twoaccountfirebaseone"一起访问和操作。
我知道我需要创建一个与"twoaccountfirebasetwo"项目相关的第二个实时数据库的示例,但我不知道该怎么做。我认为我需要创建另一个"firebase_options. dart",但我也不知道该怎么做,最后我还认为我需要创建或合并"google-services.json"文件,但我也不知道该怎么做。有人能帮助我,也让我知道什么文件和如何达成的解决方案,我正在学习,并希望提高自己在寻找解决方案。我没有找到或理解任何文件,可以帮助我。
如果问题的措辞不好,我可以更改,先多谢各位。
我什么都没试过因为我不知道该怎么试!

bxpogfeg

bxpogfeg1#

如果您有两个独立的Firebase项目,并且希望在一个应用程序中使用这两个项目的实时数据库,我能想到的最简单的方法是:
1.为第一个Firebase项目生成一个firebase_options.dart文件,就像您已经完成的那样。
1.将该文件重命名为类似firebase_options1.dart的名称。
1.为第二个Firebase项目生成另一个firebase_options.dart文件。
1.将该文件重命名为类似firebase_options2.dart的名称。
1.修改生成的dart代码,使变量具有唯一的名称。
1.将这两个选项文件导入到main.dart中,并为它们调用initializeApp
1.然后根据需要访问数据库以获取正确的FirebaseApp,如initializing the Firebase Realtime Database package文档中最后一个代码示例所示。
如果数据库真的应该是独立项目的一部分,或者如果你实际上只是想在同一个项目中有多个数据库,这可能是值得考虑的。当你把你的Firebase项目升级到付费计划时,后者是可能的,这时你可以在一个项目中有多个数据库,每个数据库都有自己唯一的URL。如果你选择这种方法,可以重用同一个FirebaseApp对象,然后将数据库URL传递给FirebaseDatabase构造函数。

相关问题