Javascript订阅AngularFire2

Javascript订阅AngularFire2,javascript,typescript,ionic2,firebase-authentication,angularfire2,Javascript,Typescript,Ionic2,Firebase Authentication,Angularfire2,我正在使用Ionic2/Angular2,需要使用参数authData调用函数,如下所示 public auth: FirebaseAuth this.auth.subscribe((authData: FirebaseAuthState) => { if (authData) { let promise: Promise<any> = this.utilityService.login(this.personModel, authData.

我正在使用
Ionic2/Angular2
,需要使用参数
authData
调用函数,如下所示

  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);
     }
   });
public auth:FirebaseAuth
this.auth.subscribe((authData:FirebaseAuthState)=>{
if(authData){
让promise:promise=this.utilityService.login(this.personModel,authData.auth,this.nav,this.auth,this.fireAuth,false);
}
});
我的问题是,因为我订阅了
FirebaseAuth
utilityService.login
函数会被多次调用

问题

如何构造此代码,以便只调用一次
utilityService.login
函数

谢谢你我的解决方案

无需
订阅
。用户可通过以下方式获得

          let promise: Promise<any> = this.utilityService.login(this.personModel, this.auth.getAuth().auth, this.nav, this.auth, this.fireAuth, false);
let promise:promise=this.utilityService.login(this.personModel,this.auth.getAuth().auth,this.nav,this.auth,this.fireAuth,false);
解决方案

无需
订阅
。用户可通过以下方式获得

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

问题是:
auth.js:104警告:自从添加对Firebase 3的支持后,getAuth()API的行为发生了变化。当页面加载时,即使用户实际登录,初始值也将返回null。请通过订阅auth服务异步观察实际的auth状态:af.auth.subscribe()。getAuth方法将在将来的版本中删除
问题是:
auth.js:104警告:自从添加对Firebase 3的支持以来,getAuth()API的行为已发生更改。当页面加载时,即使用户实际登录,初始值也将返回null。请通过订阅auth服务异步观察实际的auth状态:af.auth.subscribe()。getAuth方法将在将来的版本中删除