数据库未存储在firebase数据库中
试图将文本字段中的地址存储到firebase数据库中,但无法存储 下面的代码是创建一个数据库引用Pets来存储我们的TextField数据_txtCtrl用于处理用户输入数据库未存储在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
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
}
}