2012-07-12 36 views
7

我一直在阅读firebase文档,它使用的是非常多的异步代码。我想知道firebase是否在回调中抛出错误和/或传递错误数据。据我所知,文件没有提及它。 在此先感谢您的建议如何使用Firebase有效处理错误?

回答

5

Firebase目前不会产生开发人员可使用错误(超出投入的错误投入的情况除外)。目前,Firebase操作可以保证成功或从不触发事件。在网络连接问题的情况下,Firebase将无法触发事件。这是预期的行为,因为Firebase旨在以离线模式运行,并且一旦连接重新建立,它就会自动为您加速。

请注意,将来我们会针对安全违规和可能的其他错误类型抛出错误。用于捕获和处理这些错误的API尚未写入。

+0

好,所以尽量赶上各地的用户输入的声明...我想我能够处理失败的操作(不产生错误)一组量后发送闭包超时的时间 - 多久,应该是我不确定... – Reinsbrain 2012-07-15 00:07:02

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'); 
      } 
     }); 
    } 

http://jsfiddle.net/firebase/wPBj5/embedded/result,js/