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