【问题标题】:How to apply date filter in firestore如何在 Firestore 中应用日期过滤器
【发布时间】:2020-12-19 07:12:06
【问题描述】:

我在 Firestore 集合中有许多文档,我想在 created_at 字段上应用日期/时间戳过滤器。我的数据库时间戳格式是 Unix 时间戳(例如 1593694213.294639)。我在查询期间在where() 中使用这种2020-8-1 日期格式。

我尝试了以下代码来应用日期过滤器:

db.collection('my_collection')
    .where('created_at', '>=', new Date('2020-8-1'))
    .get()
    .then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
            console.log(doc.data());
        });
    })
    .catch((error) => {
        console.log("Error getting documents: ", error);
    });

但是这段代码抛出了一个错误。

获取文档时出错:错误:9 FAILED_PRECONDITION:查询需要索引。

如何过滤此字段?

【问题讨论】:

  • "但是这段代码抛出了一个错误" - 你的问题应该清楚地说明错误是什么以及是哪一行代码产生的。
  • 抛出此错误:获取文档时出错:错误:9 FAILED_PRECONDITION:查询需要索引。

标签: google-cloud-firestore timestamp


【解决方案1】:

根据documentation

如果您尝试使用未映射到现有索引的范围子句的 compound query,则会收到错误消息。错误消息包含在 Firebase 控制台中创建缺失索引的直接链接。

您可以参考上述文档找到为您的>= range 子句创建索引的步骤。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    相关资源
    最近更新 更多