2

关于Firebase set() 函数,有没有办法检测 set() 是否由于安全规则错误而失败?

示例代码(receives null,表示成功,即使集合实际上由于安全规则而失败):

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

Firebase 文档说,回调仅在同步失败时才会收到错误,但对于安全规则来说,传递错误也会很有用。这样我就可以自信地告诉用户他们的数据已被保存。

有没有办法做到这一点?我想它对任何带有 onComplete 回调的读/写函数都很有用。

4

1 回答 1

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

某处有一个文档在谈论错误代码,当我找到它时,我会将它添加到这篇文章中。(不,这是关于身份验证错误

于 2013-06-28T16:47:58.443 回答