我是Dart和Firebase的新手,但在与他们玩了一点之后,我偶然发现了以下问题:
我已经使用以下规则创建了测试firebase应用程序:
{
"rules": {
"privateTestData": {
".write": "false",
".read": "auth.uid !== null && auth.uid == $uid"
},
"publicTestData": {
".write": false,
".read": true
}
}
}
现在,当我阅读publicTestData时,一切正常。但是当我尝试读取privateTestData(未经过身份验证)时,我希望收到一些安全性错误或类似的内容,但永远不会调用errorHandler。
我的代码:
FB.Firebase testFBReference;
valueHandler(FB.Event event) {
var value = event.snapshot.val();
print("Value: '$value'.");
}
errorHandler(error) {
print("Some error.");
}
doneHandler() {
print("Done.");
}
void initializeFBReference() {
testFBReference = new FB.Firebase("https://test.firebaseio.com/privateTestData");
testFBReference.onValue.listen(valueHandler, onError: errorHandler, onDone: doneHandler);
}
答案 0 :(得分:1)
这里重要的一点是你也没有阅读这个值。您必须自己检查身份验证或利用Firebase.getAuth()(对于v2)。
listen上的errorHandle更多是针对特定侦听器(主要是无效对象/路径)的错误,而不是用于身份验证。