Angularjs AngularFire:如何;“安全地”;添加项目?
我正在尝试“安全地”将一个项目添加到我的Firebase“玩家”集合中,即:检查远程错误(服务器关闭、链接关闭等),以便能够通知用户请求的添加操作(临时)失败 这是我当前的代码:Angularjs AngularFire:如何;“安全地”;添加项目?,angularjs,firebase,angularfire,Angularjs,Firebase,Angularfire,我正在尝试“安全地”将一个项目添加到我的Firebase“玩家”集合中,即:检查远程错误(服务器关闭、链接关闭等),以便能够通知用户请求的添加操作(临时)失败 这是我当前的代码: app.factory('playersFactory', function($firebase, FIREBASE_URL) { var url = FIREBASE_URL + '/' + 'players'; var ref = new Firebase(url); var playe
app.factory('playersFactory',
function($firebase, FIREBASE_URL) {
var url = FIREBASE_URL + '/' + 'players';
var ref = new Firebase(url);
var players = $firebase(ref);
return {
add: function(player) {
return players.$add(player).then(
function (ref) {
var id = ref.name();
console.error('SUCCESS: added player with id:', id);
return id;
},
function (err) {
console.error('ERROR:', err);
return null;
}
);
}
// ...
}
}
);
我的问题是:
- 我的代码有效吗?(我没有找到任何参考资料——当然是我的错——关于捕捉angularfire错误的建议方法…)
- 是我对
捕获错误是有效的吗?我想不是,因为我试图在“add”之前模拟拔下网线的故障,但没有显示错误$add(player)的第二次回调的使用。然后(
- 用firebase捕捉这些错误的努力真的需要吗
".write": "!newData.child('shouldFail').exists()" // for example
您可能还想签出。它并非在所有方面都完整,也没有完整的文档,但用于测试AngularFire。与其他AngularMock(如$http)一样,它通过使用flush()工作方法触发回调,允许您在事件触发时进行复杂的控制,以可控的方式模拟异步目前,添加到您需要使用的任何其他方法都需要几分钟的时间。@Kato:谢谢您的回答!我从未深入研究过Firebase安全规则…:-(但是我无法模拟客户端$add失败,甚至设置了该规则…(我获得了常规的“成功”)在我的firebug控制台中,新数据有效地存在于firebase中……以下是我的安全规则:{“规则”:{.read::true,.write:“!newData.child('shouldFail').exists()”}我只需要一种简单的方法,在出现故障时快速测试我的逻辑,所以我最好暂时避免使用MockFirebase挖掘。。。