Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何或如何使用firebase有效地处理错误?_Javascript_Asynchronous_Firebase - Fatal编程技术网

Javascript 如何或如何使用firebase有效地处理错误?

Javascript 如何或如何使用firebase有效地处理错误?,javascript,asynchronous,firebase,Javascript,Asynchronous,Firebase,我一直在阅读firebase文档,使用的是非常异步的代码。我想知道firebase是否在回调中抛出错误和/或传递错误数据。据我所知,文档中没有提到它。 提前感谢您的建议Firebase目前不会产生开发人员可使用的错误(因错误输入引发的异常除外)。目前,Firebase操作保证成功或从不触发事件。在网络连接问题的情况下,Firebase不会触发事件。这是预期的行为,因为Firebase设计为在脱机模式下工作,一旦重新建立连接,它将自动使您加快速度 请注意,在将来,我们将抛出违反安全性的错误,并可能

我一直在阅读firebase文档,使用的是非常异步的代码。我想知道firebase是否在回调中抛出错误和/或传递错误数据。据我所知,文档中没有提到它。
提前感谢您的建议

Firebase目前不会产生开发人员可使用的错误(因错误输入引发的异常除外)。目前,Firebase操作保证成功或从不触发事件。在网络连接问题的情况下,Firebase不会触发事件。这是预期的行为,因为Firebase设计为在脱机模式下工作,一旦重新建立连接,它将自动使您加快速度


请注意,在将来,我们将抛出违反安全性的错误,并可能抛出其他错误类型。用于捕获和处理这些错误的API尚未编写。

您需要创建一个用于处理错误的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');
            }
        });
    }

好的,所以请尝试使用用户输入来处理声明。。。我想我可以处理一个失败的操作(不会引发错误),在设定的时间量之后将闭包发送到超时-应该多长时间我不确定。。。