2013-06-28 23 views
2

參考Firebase set() function,有沒有辦法檢測由於安全規則錯誤導致set()失敗?Firebase set()回調僅顯示同步錯誤,但不顯示安全規則錯誤?

示例代碼(接收null,表示成功,即使設定實際上失敗,因爲安全規則):

locationRef.set('someValue', function(error) { 
    console.log(error); 
}); 

的火力地堡文檔說,如果同步失敗回調只收到一個錯誤,但它也會對安全規則傳遞一個錯誤很有用。這樣我可以自信地告訴用戶他們的數據已被保存。

有沒有辦法做到這一點?我想這對於任何具有onComplete回調函數的讀/寫函數都很有用。

+0

作爲一個方面說明 - 唯一的方法「同步」可能會失敗,如果有違反安全規則。否則,它保證會成功 - 最終。 –

+0

很高興知道。謝謝 – sergiopantoja

回答

4

在安全錯誤的情況下,錯誤對象將包含一個PERMISSION_DENIED代碼:http://jsfiddle.net/katowulf/ZG9CY/

舉例來說,如果我跑對受保護的路徑如下:

new Firebase(URL).set({ hello: 'world' }, function(error) { 
    $('pre').text('done: '+ JSON.stringify(error)); 
}); 

我得到以下:

done: {"code":"PERMISSION_DENIED"} 

有地方講的錯誤代碼,當我找到它,我會把它添加到這個職位的文檔。(nope,it's about authentication errors

+0

完美。希望我有足夠的代表加註你的答案。謝謝! – sergiopantoja