Firebase onValue流中没有错误事件

时间:2016-04-26 21:24:50

标签: firebase dart

我是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);
}

1 个答案:

答案 0 :(得分:1)

这里重要的一点是你也没有阅读这个值。您必须自己检查身份验证或利用Firebase.getAuth()(对于v2)。

listen上的errorHandle更多是针对特定侦听器(主要是无效对象/路径)的错误,而不是用于身份验证。