0

私は2番めの新機能です。ユーザーが設定した電子メールとパスワードに基づいてFirebase認証を正常に実装しました。Firefoxの変数がブラウザの更新後にnullになる角度2

一度ユーザーがログインすると、Firebase変数が初期化され、アプリケーション全体でアクセスできますが、ユーザーがアプリケーションに入り、ページを更新するとFirebase変数はnullになります。

私の質問は、リフレッシュが発生した後のFirebaseの状態をどのように維持できるかです。ローカルストレージアプローチを試してみましたが、それは適切ではないようです。 SOの関連クエリのほとんどはAngularJS用です。

アイデア?

編集

Firebaseは、ユーザは、彼が向けられている認証されると、私は

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

}

を使用していますappcomponant.tsファイルに自分のログインサービスで

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

を初期化されます設定と呼ばれるページに移動します。設定コンポーネントでは、認証されたユーザーの電子メールを取得したいと考えています。このフローはすべて、userlogin - > settingsページであり、firebaseはnullではありません。

問題は、ユーザーが設定ページに入ったときに開始されます。その時点でページをリフレッシュするためにF5キーを押すと、Firebaseオブジェクトはnullになります。

+0

https://github.com/angular/angularfire2を見ましたか? –

+1

FirebaseはlocalStorageにAuth状態を維持します。ページをリフレッシュするときにクリアしないでください。アプリをどのような環境で提供していますか? – bojeil

+0

bojeilによれば、認証状態は自動的に保持されます。したがって、状況に応じて問題が発生する可能性があります。 [問題を再現する最小限のコード](http://stackoverflow.com/help/mcve)を見ることなく、私たちができるのは原因を推測することだけです。 –

答えて

0

ユーザーLocalStorageあなたはfirebaseから戻って受け取ったトークンを格納します。あなたがメインのapp.component.tsで、その後

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

を行うことができ、ローカルストレージに設定するには、それはそれ以外の場合は再度ログインするユーザーをリダイレクトあなたの変数に追加しない場合は、トークンが存在するかどうかを確認します。デフォルトで

NOTE

角度CLIは、そうでない場合は、あなたの自己それを追加するには、tsconfig.jsonに "DOM" を追加する必要があります。

関連する問題