【问题标题】:Firestore data retrieval of non-existing documents不存在文档的 Firestore 数据检索
【发布时间】:2020-02-29 12:52:06
【问题描述】:

我想使用以下代码从根据文档更新日期排序的 firestore 获取数据:

fun getQuery(groupID: String): Query {
        val path = FirestorePath()
        return path.getTaskCollectionRef()
            .orderBy(ActionTask.FieldNames.taskUpdatedOn.name, Query.Direction.DESCENDING)
            .whereEqualTo(ActionTask.FieldNames.taskGroupID.name, groupID)
            .whereEqualTo(ActionTask.FieldNames.taskOpen.name, true)
    }

问题是.orderBy() 导致我的应用显示已删除文档中的数据(以前存在,现在已删除)。

当我删除 .orderBy() 时,我在我的应用中看到了正确的数据。

【问题讨论】:

  • 所以你在查询的时候是从缓存中获取数据的?
  • 我没有从缓存中获取数据。至少不是故意的。 API 是否从缓存中获取它?我不知道。
  • 我问是因为 Firestore 是高度一致的,所以您不应该得到已删除的数据。但是,如果启用了oflline mode,您可能会从缓存中获取它
  • 离线模式是默认开启的吧?
  • 对于 Android 和 iOS,是的

标签: android kotlin android-recyclerview google-cloud-firestore


【解决方案1】:

这是由于 Firestore 的离线模式在您的代码中默认处于活动状态。您应该关闭 if 以避免从缓存而不是数据库获取响应。

您可以在this document找到更多关于离线模式以及如何为 Android 禁用它的信息

希望你觉得这很有用!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 2021-07-15
    • 2020-09-15
    • 2021-07-02
    • 2018-04-21
    • 1970-01-01
    • 2018-08-02
    相关资源
    最近更新 更多