Firebase authOnStateChange:如何获取当前用户一次,如果不存在,则取消订阅



我遇到了持久用户的问题。

显然,在 SDK 初始化之前auth.currentUser将为空,所以我正在使用 authStateChanged .

如果用户未登录,我想将他们重定向到登录页面,所以我订阅了身份验证状态,只是为了检查我们是否有用户,这应该在主应用程序组件中完成,以确保没有用户可以在没有auth的情况下访问任何内容。

然后是注册页面。由于 stateChange 有一个侦听器,一旦用户登录,该侦听器就会在应用程序组件中触发,并开始执行非预期的事情,而我们仍然想在注册页面上做其他事情。

有没有记录的方法,使用Firebase auth.currentUser,订阅它,并从那里获取用户,只需一次,如果没有用户,则为空。

推荐的方法是仅根据onAuthStateChange、已解决和用户存在与否设置用户的状态,然后通知您的主进程状态更改。

如记录在案的 https://firebase.google.com/docs/reference/js/firebase.auth.Auth#onAuthStateChanged

返回non-null function(( 观察者的取消订阅函数。

这意味着您可以执行以下操作:

const unsub = firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
   // User is signed in.
  }
});

然后,每当您想取消订阅时:

unsub()

相关内容

最新更新