Angular Firebase持久性加载速度

Angular Firebase持久性加载速度,angular,typescript,firebase,firebase-authentication,Angular,Typescript,Firebase,Firebase Authentication,firebase用户持久性何时加载?我有一些API需要使用Firebase持久化中存储的数据来实现。这些API在页面的构造函数中运行。因此,在命中这些API之前,firebase.currentuser似乎是空的。这导致我的后端代码出现问题 有没有办法强迫angular firebase更快地加载当前用户 这里有一个例子 constructor(public environmentService : EnvironmentService) { firebase.initializeApp(

firebase用户持久性何时加载?我有一些API需要使用Firebase持久化中存储的数据来实现。这些API在页面的构造函数中运行。因此,在命中这些API之前,firebase.currentuser似乎是空的。这导致我的后端代码出现问题

有没有办法强迫angular firebase更快地加载当前用户

这里有一个例子

constructor(public environmentService : EnvironmentService)
{
   firebase.initializeApp(config, "Test");
   this.getUser() //returns null here
}

getUser()
{
   return firebase.app("Test").currentUser 
}

laterAPIcall () //called about 1 second later after constructors finish
{
   this.getUser() // returns the current user which is not null anymore
}


编辑:我需要一些方法来强制firebase在服务构造函数运行期间或之前加载当前用户。这可能吗?

当加载页面后第一次知道当前用户时,您应该使用身份验证状态观测器来获取回调。这是尽快做出反应的最佳方式,这样您就可以使用用户信息呈现页面

this.afAuth.authState.subscribe(res => {
  if (res && res.uid) {
    console.log('user is logged in');
  } else {
    console.log('user not logged in');
  }
});
另见:


可悲的是,由于在构建之后,可观察到的on auth状态发生了变化,因此这也将不起作用。我需要一些方法来强制firebase在服务构造函数运行期间或之前加载当前用户。除了定期轮询currentUser,您实际上没有其他选项,直到它更改为止。我建议你围绕这个回调的反应性本机构建应用程序,而不是试图插入其他东西。