数据库未存储在firebase数据库中

数据库未存储在firebase数据库中,firebase,flutter,firebase-realtime-database,Firebase,Flutter,Firebase Realtime Database,试图将文本字段中的地址存储到firebase数据库中,但无法存储 下面的代码是创建一个数据库引用Pets来存储我们的TextField数据_txtCtrl用于处理用户输入 DatabaseReference dbRef = FirebaseDatabase.instance.reference().child("Pets"); 下面的代码用于将数据推送到firebase数据库: void saveData(String text) { dbRef.push().se

试图将文本字段中的地址存储到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()方法的方式

我的Firebase数据库规则:

{
  "rules": {
   ".read": "now < 1616092200000",  // 2021-5-19
    ".write": "now < 1616092200000",  // 2021-5-19
  }
}
{
“规则”:{
.read:“现在<1616092200000”//2021-5-19
.write:“现在<1616092200000”//2021-5-19
}
}

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

要存储的第一个访问文档

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

DocumentReference DocumentReference=FirebaseFirestore.instance.collection(集合名称,如“UserData”).doc(文档名称,如“Address”)

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

FirebaseFirestore.instance.runTransaction((事务)异步{documentReference.set({“位置”:{txtCtrl.text,“时间戳”:DateTime.now().millissecondssinceepoch});返回true;})


也许你应该把你的规则设定为:(我也有同样的问题,它对我有效。)


注意:此解决方案仅用于测试目的。使用上述解决方案,您将授予公众对数据库的读写权限。

firebase软件包的版本是什么?您将使用
“地址”
引用两次,一次是在声明
deRef
时,然后在
保存数据(…)中使用
function.@Satyajyotibis在此之前我使用了push(),但仍然不工作。请检查您的Firbase数据库规则您面临的错误是什么?用户显然使用的是实时firebase数据库,而不是firestore数据库。这剥夺了提供安全性的规则的作用。如果你想将问题精确到规则,然后提供更好的解决方案,你可以让提出问题的人这样做。这是我的问题。非常感谢。
{
  "rules": {
   ".read": "now < 1616092200000",  // 2021-5-19
    ".write": "now < 1616092200000",  // 2021-5-19
  }
}
{
  "rules": {
    ".read": true,
    ".write": true
  }
}