【发布时间】:2021-03-26 17:00:07
【问题描述】:
我正在开展一个项目,该项目包含应用程序中的传感器数据和实时数据库数据。每次更新时,我的应用都会使用 StreamBuilder 从传感器接收数据。一切正常,我可以从我的数据库中获取、更新、添加和删除数据,我可以成功登录和注册。但是我在注销我的应用程序时遇到了问题。每次我注销时,都会收到以下错误:
Exception has occurred.
DatabaseError (DatabaseError(1, com.firebase, Permission Denied))
错误来自这个函数,来自“等待”:
// Função para ler o valor da temperatura
Stream<int> getSensorTemperature() async* {
final FirebaseUser user = await _auth.currentUser();
await for(var event in databaseReference.child(user.uid+"/temperature").onValue) {
yield event.snapshot.value;
}
}
我在这个下有一个类似的功能,但没有显示任何错误:
Stream<int> getSensorHumidity() async* {
final FirebaseUser user = await _auth.currentUser();
await for(var event in databaseReference.child(user.uid+"/humidity").onValue) {
yield event.snapshot.value;
}
}
这是我的 Firebase 规则:
{
"rules": {
".read": "auth != null",
".write":"auth != null"
}
}
此错误仅在注销时出现,我知道这与我的安全规则有关,但是我的应用每次注销时都会崩溃,我该如何消除此错误?
【问题讨论】:
标签: flutter firebase-realtime-database firebase-security