使用flutter如何在同一个App中使用多个firebase实时数据库
Posted
技术标签:
【中文标题】使用flutter如何在同一个App中使用多个firebase实时数据库【英文标题】:Using flutter how to use more than one firebase realtime database in the same App 【发布时间】: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?
请问有什么办法吗?
【问题讨论】:
【参考方案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)
虽然这不是每个客户的单个数据库。
【讨论】:
以上是关于使用flutter如何在同一个App中使用多个firebase实时数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何从存储中选择多个图像并在 Flutter 和 Flutter Web App 中显示? [关闭]
在 Flutter 中使用 Wi-Fi Direct 创建 P2P 连接