1

私はIonic2/Angular2を使用していますが、以下に示すようにパラメータauthDataの関数を呼び出す必要があります。Javascript subscribe AngularFire2

public auth: FirebaseAuth 

    this.auth.subscribe((authData: FirebaseAuthState) => { 
    if (authData) { 
     let promise: Promise<any> = this.utilityService.login(this.personModel, authData.auth, this.nav, this.auth, this.fireAuth, false); 
    } 
    }); 

私の問題は、私はFirebaseAuthに加入していますので、utilityService.login関数が複数回呼び出される、です。

質問

utilityService.login関数は一度だけ呼び出されるように、どのように私は、このコードを構造化するのですか?

感謝youi

答えて

0

ソリューション

subscribeする必要はありません。ユーザは以下のようにして得ることができる。これで

  let promise: Promise<any> = this.utilityService.login(this.personModel, this.auth.getAuth().auth, this.nav, this.auth, this.fireAuth, false); 
+0

問題がある: 'auth.js:104 WARNING:getAuth()APIがあっても、ページのロード時。これは、初期値としてnullを返しますFirebase 3. のサポートを追加するため、動作が変更されましたユーザーは実際にログインしています。 認証サービスaf.auth.subscribe()にサブスクライブすることにより、実際のauthStateを非同期で観察してください。 getAuthメソッドは将来のリリースで削除されます – Richard