如何在 Flutter Firebase 中清除以前的用户缓存数据?

Posted

技术标签:

【中文标题】如何在 Flutter Firebase 中清除以前的用户缓存数据?【英文标题】:How to clear previous user cache data in Flutter Firebase? 【发布时间】:2021-03-10 03:41:11 【问题描述】:

我遇到的问题是,每当用户退出 FirebaseAuth.instance.signOut() 并使用另一个帐户登录时,之前用户的数据都是可见的。我看过文档,并知道使用 FirebaseFirestore.clearPersistence() 清除缓存数据。我在signOut 方法中尝试了这个,但尽管以前用户的数据仍然可见。谁能解决我的问题!

main.dart

void main() async 
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  FirebaseFirestore.instance.settings=Settings(
    persistenceEnabled: false,
  );
  runApp(MyApp());
 

firebaseAuth.dart

  static logOut()async
    await FirebaseFirestore.instance.clearPersistence();
    return  FirebaseAuth.instance.signOut();
  

非常感谢!

【问题讨论】:

请编辑问题以更详细地解释“用户数据仍然可见”的含义。你在做什么来观察这个?我们如何才能自己复制它? 您找到解决此问题的方法了吗? 就我而言,我使用 Firebase Flutter 实现了 Google 登录。登录和签出以及应用程序的各个方面都运行良好。但是,当我想在退出后切换到不同的子帐户进行谷歌登录时。在我清除缓存之前,不会出现 Google 弹出窗口。请帮忙 【参考方案1】:

您可能已经解决了这个问题,但我遇到了同样的问题,对我有用的是在注销时清除应用程序变量。

我创建了一个函数来清除变量并在signOut方法之前调用它

【讨论】:

您能否提供代码示例,说明如何在退出前清除应用程序变量? 这行得通,但 Firebase 基于流和用户非常准确的缓存管理似乎很奇怪,这样做。毫无疑问,OP 需要向我们提供有关正在做什么的更多信息。 你能提供更多,正如你所做的那样!因为清除变量似乎很容易,但我遇到了问题。

以上是关于如何在 Flutter Firebase 中清除以前的用户缓存数据?的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 托管 Flutter Web 应用程序未清除首次部署的缓存

如何在 Flutter TextField Widget 中添加“X”以清除搜索框?

如何在 Flutter 中使用 rest api 不使用 firebase 以 google 或 facebook 登录

如何在flutter中以排序方式从firebase数据库中检索数据..当我将其检索为Map时出现问题

如何以单独的方法获取 Flutter Firebase 存储?

Flutter:如何删除等待以利用 Firebase 离线持久性?