首页 > 解决方案 > 带有时间戳字段的 Firestore startAt 不起作用

问题描述

我尝试按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),它可以工作!这仅使用时间戳字段重现

标签: javascriptnode.jsfirebasegoogle-cloud-firestore

解决方案


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

startAt('1617235200000')

推荐阅读