如何在flatter中正确调用FirebaseFirestore.instance.clearPersistence()?

如何在flatter中正确调用FirebaseFirestore.instance.clearPersistence()?,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我和这家伙面临着同样的问题 但他接受的答案对我没有帮助 问题: 当一个用户注销,而另一个不同的用户登录时,由于firebase缓存系统,我的应用程序上显示的所有数据都来自先前注销的用户。我搜索了这个问题,找到了一个解决方案,它包括调用此方法: FirebaseFirestore.instance.clearPersistence(); 但是每当我放置这行代码的任何地方,都会抛出一个异常,表示在客户端运行时我无法调用此方法: 发生异常。 PlatformException(PlatformExc

我和这家伙面临着同样的问题

但他接受的答案对我没有帮助

问题:

当一个用户注销,而另一个不同的用户登录时,由于firebase缓存系统,我的应用程序上显示的所有数据都来自先前注销的用户。我搜索了这个问题,找到了一个解决方案,它包括调用此方法:

FirebaseFirestore.instance.clearPersistence();
但是每当我放置这行代码的任何地方,都会抛出一个异常,表示在客户端运行时我无法调用此方法:

发生异常。 PlatformException(PlatformException(失败的前提条件,操作被拒绝,因为系统未处于操作执行所需的状态。如果执行查询,请确保已通过Firebase控制台对其进行索引。)。,{代码:前置条件失败,消息:操作被拒绝,因为系统未处于执行操作所需的状态。如果执行查询,请确保已通过Firebase控制台对其进行索引。nativeErrorMessage:Persistence无法在客户端运行时清除。nativeErrorCode:9})


那么,如何调用此方法?或者更好,是否有解决此问题的最佳方法?

您应该在初始化Firebase之后,在进行第一次查询之前立即调用它。

似乎有必要先终止
FirebaseFirestore.instance

在注销方法结束时,我调用:

await FirebaseFirestore.instance.terminate();
await FirebaseFirestore.instance.clearPersistance();

我没有遇到任何错误,现在一切似乎都正常工作。

将此添加到登录按钮“onPressed”中:

FirebaseFirestore.instance.terminate();
                FirebaseFirestore.instance
                    .clearPersistence()
                    .then((value) => signinUser(email, password, context));

我尝试了这种方法,但没有成功。我注销并放置Wait FirebaseFirestore.instance.clearPersistence();单击登录按钮后的第一件事就是出现相同的错误。您找到了解决此问题的方法吗?似乎有必要先终止FirebaseFirestore.instance。