firebase - Firebase onAuthStateChanged 有效,但不更新 lastSignInTime
问题描述
我在我的本机应用程序中同时使用 Google 登录和电子邮件和密码身份验证。我为 authstate 设置了一个侦听器,一切正常,我的用户通过了身份验证,应用程序进入主屏幕等等。
但是,当查看 Firebase 控制台上的“身份验证选项卡”时,我的用户同时拥有最后一次登录和创建时间,尽管在那之后用户登录了多少次。
我注意到,如果我注销并重新登录,“上次登录”选项卡会更改值。这意味着使用我的用户登录时调用的“signInAndRetrieveDataWithCredential”登录确实会更改该值,但随后正在侦听我的用户持久性的身份验证状态侦听器不会更新它。我认为这非常重要,因为用户正在打开您的应用程序并“登录”,即使他们没有通过登录流程。
我可以做些什么来更新值并获得用户创建时间和上次登录时间的更新列表?这似乎是一些重要信息,可以跟踪用户如何使用您的应用程序以及他们是否回来。
解决方案
侦听器只是检测到状态的变化。它不会强制改变状态。上次登录时间是用户之前完全注销的时间,然后您的应用使用登录 API 登录。这不是您的侦听器最后一次检测到先前登录的时间。
当用户登录时,该登录实际上是永久的。在用户明确退出(当您的代码调用退出 API 时)或系统拒绝自动刷新他们的登录(帐户被删除或禁用)之前,登录不会过期。
如果您想知道您的身份验证状态侦听器上次触发的时间,您可以自己存储它,但我认为它不一定会给您提供非常有用的信息。最好的是,您将大致了解他们上次积极使用您的应用程序的时间。
推荐阅读
- javascript - 刷新页面后保留LocalStorage
- python - 当两个值在同一个groupby列pandas中时如何创建矩阵?
- html - 从 html 表单传递高级搜索查询
- django - 每个项目使用基于 Django 类的 LisView 发送上下文
- sql - SQLite3 数据库不是构造函数
- firebase - 让每个用户都有自己的数据 - Flutter - Firebase
- json - 如何将分段的 CF 交通数据 (SS) 与形状数据 (SHP) 结合起来?
- angular - 使用 Auth0 对 Ionic 本机应用电容器进行身份验证
- javascript - 悬停下拉菜单时,如何使用半透明叠加层使内容变暗?
- swift - Firebase 无法读取数据,因为它的格式不正确