【问题标题】:database not stored in firebase database数据库未存储在 firebase 数据库中
【发布时间】:2021-03-18 17:03:56
【问题描述】:

试图将文本字段中的地址存储到 Firebase 数据库中,但无法存储。

下面的代码是创建一个数据库引用 Pets 来存储我们的 TextField 数据。 & _txtCtrl 用于处理用户输入。

DatabaseReference dbRef = FirebaseDatabase.instance.reference().child("Pets");

下面的代码是将数据推送到firebase数据库:

void saveData(String text) {
    dbRef.push().set({
      "My Pets": _txtCtrl.text,
      "timestamp": DateTime.now().millisecondsSinceEpoch
    });
  }

这就是我调用 saveData() 方法的方式

                      child: RaisedButton(
                      onPressed: () {
                        saveData(_txtCtrl.text);
                      },
                      child: Text('SAVE'),
                    ), 

我的 Firebase 数据库规则:

{
  "rules": {
   ".read": "now < 1616092200000",  // 2021-5-19
    ".write": "now < 1616092200000",  // 2021-5-19
  }
}

【问题讨论】:

  • 你的 firebase 包的版本是什么?
  • 您使用了两次"Address" 引用,一次在deRef 的声明中,然后在saveData(...) 函数内。
  • @SatyajyotiBiswas 在此之前我使用了 push() 但仍然无法正常工作
  • 请检查您的 Firbase 数据库规则
  • 您遇到的错误是什么?

标签: firebase flutter firebase-realtime-database


【解决方案1】:

Firestore 基本上是一个文档集合。您总是尝试将您的数据存储在一个文档中,而不是访问整个数据库,就像您使用 dbRef 所做的那样。而是像这样尝试:

您要存储的首次访问文档

这可以通过以下代码完成:

DocumentReference documentReference = FirebaseFirestore.instance.collection( Name of collection such as "UserData").doc( Name of document such as "Address")

运行事务以设置或更新数据

FirebaseFirestore.instance.runTransaction((transaction) async { documentReference.set( {"Location": _txtCtrl.text,"timestamp": DateTime.now().millisecondsSinceEpoch}); return true;});

【讨论】:

  • 用户显然使用的是 Realtime firebase datable 而不是 firestore 数据库
猜你喜欢
  • 1970-01-01
  • 2011-11-14
  • 2020-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-02
  • 2017-12-04
相关资源
最近更新 更多