我一直在阅读firebase文档,它使用了非常多的异步代码。我想知道firebase是否在回调中抛出错误和/或传递错误数据。据我所知,文档没有提到它。 提前感谢您的建议
答案 0 :(得分:5)
Firebase目前不会产生开发人员可消耗的错误(在输入错误的情况下抛出异常)。目前Firebase操作保证成功或永不触发事件。在网络连接问题的情况下,Firebase将不会触发事件。这是预期的行为,因为Firebase旨在在离线模式下工作,并且一旦重新建立连接,它将自动使您加速。
请注意,将来我们会针对安全违规和可能的其他错误类型抛出错误。用于捕获和处理这些错误的API尚未编写。
答案 1 :(得分:1)
您需要创建一个处理错误的auth函数。请参阅下面的jsFiddle以获得一个很好的例子。
function initAuth(ref) {
return new FirebaseSimpleLogin(ref, function (err, user) {
// if there is an error then display it
if (err) {
displayError(err);
} else if (user) {
// we only want to log people in through the email/password provider
if( user.provider !== 'password' ) {
auth.logout();
}
else {
// logged in!
uid = user.uid;
// save the user to our firebase
ref.child(user.uid).set({
id: user.id,
uid: user.uid,
email: user.email
});
// switch over the the user info screen
switchView('userInfo');
}
} else {
// logged out!
console.log('not logged in');
}
});
}