2016-04-26 29 views
2

我是新來的DART和火力地堡,但玩一點點與他們後,我偶然發現了以下問題跌跌撞撞:在火力地堡onValue流沒有錯誤事件

我創建了一個測試火力應用與以下規則:

{ 
    "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

這裏最重要的產品,你也不要讀值。您必須自己檢查身份驗證,或者使用Firebase.getAuth()(for v2)。

關於listen的errorHandle更多的是關於該特定偵聽器(主要是無效的對象/路徑)的錯誤,而不是用於身份驗證的錯誤。