在 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 检索用户电子邮件

如何在 Flutter 中从 firebase 存储读取和写入文本文件?

如何在flutter中从firebase获取数据