【问题标题】:Firestore startAt with timestamp field not work带有时间戳字段的 Firestore startAt 不起作用
【发布时间】:2021-07-07 15:49:23
【问题描述】:

我尝试按 created_at 字段(该字段的类型为 timestamp)按时间顺序分页,但问题是以下带有 start_at 的查询返回 null,尽管我之后有数据给定的日期(created_date)。

  snapshot = await FirebaseHelper.FirebaseContext.firestore()
      .collection("Announcements")
      .orderBy("created_at", "desc")
      .startAt(1617235200000) // --> not work
      .limit(3)
     // .where("created_at", ">", 1617235200000) --> this not work also
      .get();

使用 startAt 结果为 NULL !

没有 startAt 我得到了结果

来自文档:https://firebase.google.com/docs/firestore/query-data/query-cursors

如果我使用其他字段进行分页(例如 ID),它可以工作! 这仅使用 timestamp 字段

【问题讨论】:

  • Firebase 实时数据库和 Cloud Firestore 是两个独立的数据库。请仅使用相关标签标记您的问题,不要同时使用两者。
  • 请编辑您的问题以显示您希望从此查询中返回但未返回的文档。
  • 可以不传递epoch,而是传递一个Date的实例,看看它是否返回结果?
  • 我试过了,但不行:/
  • 用单引号或双引号将这些值括起来。

标签: javascript node.js firebase google-cloud-firestore


【解决方案1】:

您应该为您的 startAt 方法添加一个实际的时间戳,例如

startAt('1617235200000')

【讨论】:

    【解决方案2】:

    用途:

    .start_at({"timestamp":datetime.datetime.now()})
    

    【讨论】:

      猜你喜欢
      • 2020-02-28
      • 2019-06-15
      • 2021-01-21
      • 2020-12-25
      • 2012-08-07
      • 2021-08-27
      • 2020-10-10
      • 1970-01-01
      • 2020-07-10
      相关资源
      最近更新 更多