Firebase onAuthStateChanged可以运行,但不会更新lastSignInTime

时间:2019-03-04 16:29:10

标签: firebase react-native firebase-authentication

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

但是,在Firebase控制台上查看“身份验证选项卡”时,尽管用户在此之后登录了多少次,但他们的登录名和创建时间都是相同的。

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

我该怎么做以更新值并具有创建用户和最后登录时间的更新列表?这似乎是一些重要信息,可用于跟踪用户如何使用您的应用以及用户是否会回来。

1 个答案:

答案 0 :(得分:0)

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

用户登录后,that sign in is effectively permanent。直到用户显式注销(当您的代码调用注销API时),或者系统拒绝其登录的自动刷新(帐户被删除或禁用),登录才到期。

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