Firestore 控制台上的数据与查询数据库时检索到的数据不同

Data on Firestore console differs from the retrieved when consulting the database

我通过 firebase 控制台删除了一个文档,但是,当我 运行 我的项目查找该文档时,它会检索已删除的文档(我在控制台中看不到)。

App after receiving the docSnapshot and parsing the json in it to retrieve the data of the deleted document

Firebase console showing there's no data saved in Cloud Firestore

不确定删除文档是否是触发此问题的原因。

尝试创建一个具有相同 ID 的新文档,然后看看应用程序是否会获取这个新文档而不是已删除的文档。没有用,还带着被删的文件

似乎用于在控制台上显示我的 collections 和文档的数据与 运行 在我的项目中参考的数据不同。

我将此报告为错误,但是,有没有人遇到过类似的情况?您是如何修复的?

这不是错误。 Firestore 客户端 SDK 有一个名为 offline persistence 的功能,在 Android 和 iOS 中默认启用。此功能会缓存您的数据,这样即使设备处于离线状态,您的应用也可以访问这些数据。 您可以通过将源参数传递给 get() 方法来指定查询的数据源。

documentReference.get(Source.SERVER)
// or
query.get(Source.SERVER)

如果您正在使用 SnapshotListener 并且文档存在于缓存中,则第一个结果将始终来自缓存。你可以通过这样做来检查它:

documentReference.addSnapshotListener(MetadataChanges.INCLUDE) { snap, e ->
    snap?.metadata?.isFromCache
}