したがって、プロジェクトのアーキテクチャは次のとおりです。角度+ Firebase。 Angularコンポーネントは、Firebaseからデータを保存/取得するためにサービスのメソッドを呼び出します。ユーザがログアウトした後にサービス内の変数を角度でリセットする
動作:ユーザーはログインし、何らかのアクティビティを実行して(データを保存/取得して)ログアウトします。別のユーザーが同じ/別のタブに同じブラウザウィンドウでログインした場合、データが保存されます。 データはFirebaseの以前にログインしたユーザーの場所に保存されます。
これは予期した動作であることを確認しますか?
は、サービスのコンストラクタでは、私は現在
constructor() {
this.user = firebase.auth().currentUser;
// some other code
}
をログに記録フェッチするコードを書かれているしかし、それはアプリケーションの第二/連続したユーザーのために呼び出されることはありませんです(最初/前のユーザがログアウトした後) 。
私は確信していませんが、確認したいのですが、新しいユーザーがログインしたときにサービスのコンストラクタが再度呼び出されるのではないですか? または、私がこの方法で入れてみましょう。ユーザーがログアウトすると、現在ログインしていない場合、firebase.auth()。currentUserがnullを返すため、 "service"の "user"変数をnullに設定しないでください。ユーザー!
このシナリオを処理するために別の関数を作成しました。 –