0

我是angular 2的新手,我已成功實施基於用戶設置的電子郵件和密碼的Firebase身份驗證。Firebase變量在瀏覽器刷新後變爲空角度2

一旦用戶登錄,Firebase變量將被初始化,並且可以在整個應用程序中訪問,但是一旦用戶在應用程序中並刷新頁面,Firebase變量將變爲空。

我的問題是如何在刷新發生後保持Firebase狀態。嘗試了本地存儲方式,但似乎並不合適。 SO中的大多數相關查詢都是針對AngularJS的。

任何想法?

編輯

火力地堡在appcomponant.ts初始化文件

firebase.initializeApp({ 
    apiKey: 'A******E', 
    authDomain: 'e******m', 
    databaseURL: 'h*****m', 
    projectId: 'e******r', 
    storageBucket: 'e******m', 
messagingSenderId: '****93***' 
}); 

在我的登錄服務,我使用

signInUser(email: string, password: string) { 
return firebase.auth().signInWithEmailAndPassword(email, password); 

}

一旦用戶驗證他執導到一個叫做設置的頁面。在設置組件中,我想獲取經過身份驗證的用戶的電子郵件。當流程是userlogin - >設置頁面時,這一切都很順利,firebase不爲null。

當用戶在設置頁面中點擊F5刷新頁面時,問題開始,此時Firebase對象變爲空。

+0

你看過https://github.com/angular/angularfire2嗎? –

+1

Firebase在localStorage中保持Auth狀態。它不應該在頁面刷新時被清除。你在爲你的應用程序提供什麼環境? – bojeil

+0

正如bojeil所說,auth狀態是自動持續的。所以這可能是一個特定於您的情況的問題。沒有看到[重現問題的最小代碼](http://stackoverflow.com/help/mcve),我們所能做的只是猜測原因。 –

回答

0

用戶LocalStorage用於存儲您從Firebase收到的令牌。要在本地存儲設置,你可以做

localStorage.setItem('fireBaseToken', 'token'); 

然後在你的主app.component.ts檢查,如果它不把它添加到您的變量,否則重定向用戶再次登錄令牌存在。

注意

默認的角度CLI應該添加 「DOM」 你tsconfig.json否則其添加到您的自我。

相關問題