在 Flutter 中从 Firebase 实时数据库读取和存储数据
Posted
技术标签:
【中文标题】在 Flutter 中从 Firebase 实时数据库读取和存储数据【英文标题】:Reading and Storing data from Firebase realtime database in Flutter 【发布时间】:2021-09-13 04:36:31 【问题描述】:我的firebase rtdb上有一些对象形式的数据,我只想在我的设备上检索数据并使用持久性方法保存它。我已经做了一个月了,寻找了很多可能的解决方案,但这似乎没有帮助。 这是我的数据结构:
(如果您需要任何缺失的信息,请告诉我)
提前致谢!
编辑#1
这是我尝试过的
class contact
final String name,desig,category,ip_direct,ip_office,ip_res,ll_off,ll_res,mob;
contact(this.name,this.desig,this.category,
this.ip_direct,this.ip_office,this.ip_res,this.ll_off,this.ll_res,this.mob);
factory contact.fromJson(Map<dynamic, dynamic> json)
return contact(
name: json["Name"],
desig: json["Design"],
category: json["Category"],
ip_direct: json["IP Direct"].toString(),
ip_office: json["IP Office"].toString(),
ip_res: json["IP Home"].toString(),
ll_off: json["LL Office"].toString(),
ll_res: json["LL Home"].toString(),
mob: json["Mobile"].toString(),
);
Future<List<contact>> getList()async
final dbRef = FirebaseDatabase.instance.reference().child("Deans");
List<contact> list=new List();
DataSnapshot snap=await dbRef.once();
List<dynamic> obj=snap.value;
for(int i=0; i<obj.length; i++)
list.add(contact.fromJson(obj[i]));
return list;
我无法在此处保存数据
【问题讨论】:
加你的努力,请出示你的代码。 转到这里firebase.flutter.dev/docs/firestore/usage @Vinit_Saini 您分享了 Firestore 的链接,该链接与 Realtime DB 不同 @Vinit_Saini 我添加了一些代码段 【参考方案1】:我遇到了同样的问题,找不到解决方案,直到我查看了库文件,解决方案比我想象的要简单。
....
final Future<bool> db = FirebaseDatabase().setPersistenceEnabled(true);
final DatabaseReference _fechasRef =
FirebaseDatabase.instance.reference().child('...');
....
第一行表示必须存储数据,因为在 firebase 实时数据库中,默认情况下不启用数据持久性。
【讨论】:
【参考方案2】:Firebase 实时数据库默认是持久的,一旦数据至少加载一次,您的代码甚至可以离线运行。
【讨论】:
我相信你说的是firestore,因为我在实时数据库中没有找到任何这样的东西。实时数据库中有离线持久化功能,但默认关闭以上是关于在 Flutter 中从 Firebase 实时数据库读取和存储数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在flutter中从firebase数据填充listview
在 Flutter 的下拉列表中从 Firebase 获取经过身份验证的用户列表
在 Flutter 中从 Firebase 读取数组 [重复]
在 Flutter 中从 Firebase 检索用户电子邮件