首页 > 解决方案 > Firebase onAuthStateChanged 有效,但不更新 lastSignInTime

问题描述

我在我的本机应用程序中同时使用 Google 登录和电子邮件和密码身份验证。我为 authstate 设置了一个侦听器,一切正常,我的用户通过了身份验证,应用程序进入主屏幕等等。

但是,当查看 Firebase 控制台上的“身份验证选项卡”时,我的用户同时拥有最后一次登录和创建时间,尽管在那之后用户登录了多少次。

我注意到,如果我注销并重新登录,“上次登录”选项卡会更改值。这意味着使用我的用户登录时调用的“signInAndRetrieveDataWithCredential”登录确实会更改该值,但随后正在侦听我的用户持久性的身份验证状态侦听器不会更新它。我认为这非常重要,因为用户正在打开您的应用程序并“登录”,即使他们没有通过登录流程。

我可以做些什么来更新值并获得用户创建时间和上次登录时间的更新列表?这似乎是一些重要信息,可以跟踪用户如何使用您的应用程序以及他们是否回来。

标签: firebasereact-nativefirebase-authentication

解决方案


侦听器只是检测到状态的变化。它不会强制改变状态。上次登录时间是用户之前完全注销的时间,然后您的应用使用登录 API 登录。这不是您的侦听器最后一次检测到先前登录的时间。

当用户登录时,该登录实际上是永久的。在用户明确退出(当您的代码调用退出 API 时)或系统拒绝自动刷新他们的登录(帐户被删除或禁用)之前,登录不会过期。

如果您想知道您的身份验证状态侦听器上次触发的时间,您可以自己存储它,但我认为它不一定会给您提供非常有用的信息。最好的是,您将大致了解他们上次积极使用您的应用程序的时间。


推荐阅读