【问题标题】:Using flutter how to use more than one firebase realtime database in the same App使用flutter如何在同一个App中使用多个firebase实时数据库
【发布时间】:2019-12-10 14:04:47
【问题描述】:

我们正在使用 firebase 实时数据库在 Flutter 中开发应用程序,为不同的客户提供多种服务。我想为每个使用相同 firebase 项目的客户提供不同的数据库。由于 firebase 在同一个项目中支持多个数据库,我相信可以使用 FirebaseDatase 插件来实现。

我尝试设置对辅助数据库的引用,但我找不到一个解决突击队来更改此数据库的实例。如果您使用 Java 或其他使用 Firebase SDK 的语言,这非常简单,但我找不到使用 Flutter 的方法。

Future<DataSnapshot> getDbData(String dbChildPath) async {
DataSnapshot _objdatabase;
try {
  await FirebaseDatabase.instance
      .reference()
      .child(dbChildPath)
      .once()
      .then((DataSnapshot snapshot) {
    _objdatabase = snapshot;
    print(_objdatabase.toString());
  });
  return _objdatabase;
} catch (erroDB) {
  print(erroDB);
  return null;
}}

我的代码正在从默认数据库中获取数据。

如何设置辅助数据库实例的 URL?

请问有什么办法吗?

【问题讨论】:

    标签: firebase-realtime-database flutter


    【解决方案1】:

    您可以使用 FirebaseDatabase() 的参数,如下所示:

    String fdbUrl1 = "https://my-firebase-db-1.firebaseio.com"
    String fdbUrl2 = "https://my-firebase-db-2.firebaseio.com"
    
    final databaseReference1 = FirebaseDatabase(databaseURL:fdbUrl1).instance.reference();
    final databaseReference2 = FirebaseDatabase(databaseURL:fdbUrl2).instance.reference();
    

    注意:以上内容未经单元测试。它应该工作。以防万一,添加构造函数的'app'参数。

    【讨论】:

    • 仅供参考:firebase_database.dart 说 - /// 如果指定了 [app],则其选项应包含 [databaseURL]。
    【解决方案2】:

    另一种方法是将您的客户 ID 放在您的子路径中,例如:

    await FirebaseDatabase.instance
      .reference()
      .child(customer_id)
      .child(dbChildPath)
      .once()
      .then((DataSnapshot snapshot) {
    

    虽然这不是每个客户的单个数据库。

    【讨论】:

      猜你喜欢
      • 2021-03-08
      • 1970-01-01
      • 2019-06-19
      • 2019-11-05
      • 2021-09-08
      • 1970-01-01
      • 2021-07-03
      • 1970-01-01
      • 2017-09-29
      相关资源
      最近更新 更多