使用Firebase API登录时出现超时错误

时间:2017-04-24 05:11:13

标签: javascript firebase firebase-realtime-database firebase-authentication sentry

  

发生网络错误(例如超时,中断连接或无法访问的主机)。

每当我尝试登录时,都会发生此错误。

我的JS代码:

  firebase.auth().signInWithEmailAndPassword(emailId, password).then(function (userData) {
            usersRef.child(userData.uid).once("value", function (userSnap) {
                var usersSnap = userSnap.val();
                /*
                 * Record login attempt to firebase
                 */
                if (userSnap) {
                  authlogRef.child(userData.uid).once('value', function (userLogSnap) {
                    userLogSnap = userLogSnap.val();
                    // Initial login count
                    var loginCount = userLogSnap && userLogSnap.loginCount || 0;
                    // timestamp for current login
                    var timestamp = Date.now();
                    // log data to update
                    var data = userLogSnap || {};
                    //If no timestamps -> First login attempt, so timestamps -> []
                   if (!data.timestamps) {
                     data['timestamps'] = []
                   }
                   // push current timestamp for current login
                    data.timestamps.push(timestamp)
                    // increment login count
                    data['loginCount'] = loginCount + 1;
                    // set data to end point
                    authlogRef
                      .child(userData.uid)
                      .set(data)
                      .then(function () {
                        callback(null, usersSnap);
                      })
                  })
                }
            }).catch(function (error) {
                var errorCode = error.code;
                var errorMessage = error.message;
                if (errorCode == 'auth/invalid-email') {
                    var msg = 'Email id is not Valid';
                    callback(msg);
                } else if (errorCode == 'auth/user-disabled') {
                    var msg = 'User is in disable state';
                    callback(msg);
                } else if (errorCode == 'auth/user-not-found') {
                    var msg = 'User not found';
                    callback(msg);
                } else if (errorCode == 'auth/wrong-password') {
                    var msg = 'Invalid Password';
                    callback(msg);
                } else if (errorCode == 'auth/network-request-failed') {
                    var msg = 'Network Error';
                    callback(msg);
                } else {
                    callback("error:" + errorMessage);
                }
            });
})

有时我收到超时错误。但我不能指出出了什么问题。

1 个答案:

答案 0 :(得分:0)

我刚刚确认,如果用户的浏览器上安装了noscript(或者可能是任何其他阻止扩展的脚本),就会出现这种错误。如果身份验证适用于大多数用户,但其他人收到此错误消息,则可能是问题的根源。

让用户将您正在使用的域名(包括相关的OAuth域名)列入白名单,和/或禁用其脚本拦截器,可以解决问题。