【问题标题】:firestore: array empty when i try to get data by datefirestore:当我尝试按日期获取数据时,数组为空
【发布时间】:2020-07-21 00:12:20
【问题描述】:

这是我第一次使用 Firestore。当我按日期添加过滤器时,我无法从 firestore 获取数据。我想检索前一天(昨天)保存的 Firestore 数据。我尝试了很多互联网的例子。

我试试这个:

const query = this.fb.collection('your_collection');
query(`your_directory`,
  ref =>  ref.orderBy('reportedAt').startAt(new Date(2020, 7, 20, 0, 0, 0)));

还有这个

const query = this.fb.collection('your_collection');
query(`your_directory`,
  ref =>  ref.where('reportedAt','>=', new Date(2020, 7, 20, 0, 0, 0)));

但是每次我使用其中一种方法时,我都找不到预期的结果。他返回一个空数组。

有人可以向我解释如何解决我的问题吗?

编辑: 响应示例。排列此数据 我想检索一个数据数组,其报告日期从最后一天开始。 这是在firebase UI上报告的

谢谢

【问题讨论】:

  • 请编辑问题以显示应与您的查询匹配的文档的特定示例。如果您的查询在各个方面都与您的数据相匹配,我们将无能为力。
  • @DougStevenson 好的
  • 你得到一个空数组是什么意思?在屏幕截图中,您显示为至少具有该元素的数组
  • 如果将传递给查询的日期减去一天会怎样?它找到什么了吗?
  • 对于示例表,我修改了我的查询以向您展示它的内容应该包含的内容。抱歉,我通常不会在 stackoverflow 上发帖

标签: javascript firebase google-cloud-firestore


【解决方案1】:

终于我要求工作了,我还是不明白...

这个查询不起作用

const query = this.fb.collection('your_collection');
query(`your_directory`,
ref =>  ref.orderBy('reportedAt').startAt(new Date(2020, 7, 20, 0, 0, 0)));

但是这个查询有效

const query = this.fb.collection('your_collection');
query(`your_directory`,
ref =>  ref.orderBy('reportedAt').startAt(new Date("2020-07-20")));

区别在于实例化 Date 对象的方式。但正如我告诉你的,我不理解这种行为。

【讨论】:

    猜你喜欢
    • 2019-08-31
    • 2020-07-25
    • 2018-09-11
    • 2012-11-28
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 2023-01-24
    相关资源
    最近更新 更多