参考Firebase set() function,是否有办法检测set()是否因安全规则错误而失败?
示例代码(接收null
,表示成功,即使该集实际上因安全规则而失败):
locationRef.set('someValue', function(error) {
console.log(error);
});
Firebase文档说,如果同步失败,回调只会收到错误,但是为安全规则传递错误也会很有用。通过这种方式,我可以自信地告诉用户他们的数据已被保存。
有没有办法做到这一点?我想这对任何带有onComplete回调的读/写函数都很有用。
答案 0 :(得分: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)