1

我正在使用Ionic2/Angular2,需要調用一個函數,參數爲authData,如下所示。Javascript訂閱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函數只被調用一次?

感謝蜉

回答

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警告:由於增加了對火力地堡3. 支持getAuth()API已經改變行爲,則將返回null初始值加載網頁時,即使用戶實際上已登錄。 請通過訂閱auth服務:af.auth.subscribe()異步觀察實際的authState。 getAuth方法將在未來版本中被刪除 – Richard