2017-08-06 58 views
0

每當我嘗試登錄本地安裝,我得到這個錯誤:誤差在註冊時火力權威性的反應程序

"auth/network-request-failed", message: "A network error (such as timeout, interrupted connection or unreachable host) has occurred."} 

在註冊時,我只是將用戶重定向到一個新的頁面,就是這些。

我讀到它可能是服務工作人員與create-react-app作出的問題,但我不完全確定是否是一個好主意,禁用它。

這是我如何處理註冊:

handleSubmit(e) { 
    e.preventDefault(); 
    firebase.auth() 
    .createUserWithEmailAndPassword(this.state.emailValue, this.state.passValue) 
    .catch((error) => { 
     console.error(error) 
    }) 
    this.handleAuthChange() 
} 

handleAuthChange() { 
    firebase.auth().onAuthStateChanged((user) => { 
     if (user) { 
      window.location = 'thank-you' 
      let email = user.email 
      console.log(email + " logged in") 
     } else { 
      window.location = "" 
      console.log("not logged in") 
     } 
    }) 
} 

我應該如何解決這個問題?

回答

2

您的handleAuthChange()函數應該在成功函數中調用後,一旦登錄完成,考慮到您想在firebase.auth().createUserWithEmailAndPassword函數調用後啓動firebase.auth().onAuthStateChanged聽衆。

var self = this; 
handleSubmit(e) { 
    e.preventDefault(); 
    firebase.auth() 
    .createUserWithEmailAndPassword(this.state.emailValue, 
this.state.passValue) 
    .then(function(userData){ 
     self.handleAuthChange(); 
    }) 
    .catch((error) => { 
    console.error(error); 
    }) 
} 

一個更好的主意,我猜可能是由因爲它會保持火力AUTH的狀態功能刪除它開始在頁面加載聽者頁面重載的情況下。如果一個用戶登錄/使用firebase.auth方法簽約到您的應用程序

firebase.auth().onAuthStateChanged((user) => { 
     if (user) { 
      window.location = 'thank-you' 
      let email = user.email 
      console.log(email + " logged in") 
     } else { 
      window.location = "" 
      console.log("not logged in") 
     } 
    }); 

此偵聽器將自動檢測。

希望這會有所幫助。

+0

爲我工作,非常感謝:) – VWang