【问题标题】:How do I clear previous user data on signout in Firebase?如何在 Firebase 注销时清除以前的用户数据?
【发布时间】:2022-06-21 23:21:55
【问题描述】:

如果我以用户身份登录,然后使用注销

  Future<void> _signOut() async {
    await FirebaseAuth.instance.signOut();
  }

但随后以其他用户身份重新登录,它仍会显示以前的用户凭据。

有没有办法在注销时清除缓存,这样就不会发生这种情况?

我有针对不同用户的特定用户页面,因此不能以以前的用户身份登录,这一点非常重要。如果我退出并在 vscode 上点击重新启动然后登录,那么它不会以其他用户身份登录,并正确登录,所以我认为这肯定是某些东西被保存在缓存中,并且尽管退出,但仍然保留。

【问题讨论】:

  • 如何获取您显示的有关登录用户的凭据?
  • @JesperPaulsen 我检查了 firebase auth 当前凭据,然后我有显示 user.email 的文本!如果 uis = 'userid' 我会显示一条消息
  • 您必须重新运行该代码以获取新的 currentUser 值(此时将是 null),然后根据该值清除 UID。

标签: flutter firebase dart firebase-authentication


【解决方案1】:

为了显示有关登录用户的正确信息,您可以使用FirebaseAuth.instance.authStateChanges() 流,更多信息here。每次身份验证状态发生变化时,例如在调用 FirebaseAuth.instance.signOut(); 时,流将使用已登录用户发出一个新事件,如果用户未登录,则为 null。然后您可以相应地更新您的 UI。

【讨论】:

    猜你喜欢
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 2020-10-14
    • 2023-03-14
    • 2012-12-14
    • 1970-01-01
    相关资源
    最近更新 更多