当前位置: 首页 > 知识库问答 >
问题:

带Dart的Firebase实时数据库日期字符串范围

吉玉石
2023-03-14

在我的实时数据库中,我有一系列日期字符串,以yy-mm-dd的格式充当键。这些日期存储在用户的 uid 下:

我需要得到一系列有序的日期。我可以对日期进行排序,但是当我尝试执行< code>startAt()和< code>endAt()时,没有任何结果返回。如果我只是执行一个< code>startAt()操作,那么所有的东西都会被返回。

这给了我一个有序列表:

var query = _database.reference().child(DAY_TABLE).child(UserState.instance.user.uid).orderByValue();

query.onChildAdded.forEach((day) {
    dayList.add(Day.fromJson({day.snapshot.key: day.snapshot.value}));
});

我想做但不起作用的是:

var query = _database.reference().child(DAY_TABLE).child(UserState.instance.user.uid).orderByValue().startAt("2020-09-12").endAt("2020-09-19")

其中,上述查询将包括 2020-09-12 和 2020-09-19 之间的任何和所有日期。如何指定这样的范围?

我认为我可能必须将日期字符串转换为Unix时间,但由于我能够正确排序日期,因此似乎应该有一种方法来实现这一点。如果可能的话,我更愿意将它们保留为日期字符串,因为使用它们更明显。

共有1个答案

钱志
2023-03-14

您正在寻找订单ByKey()

_database.reference()
  .child(DAY_TABLE)
  .child(UserState.instance.user.uid)
  .orderByKey()
  .startAt("2020-09-12")
  .endAt("2020-09-19")
 类似资料:
  • 我有一个格式化的字符串日期 2020/04/16 (年/月/日) 我想把这个字符串解析成日期时间 显然不起作用,没有正确的日期格式。 有人知道把这个字符串解析成日期时间的最好方法是什么吗?

  • 问题内容: 如何将字符串日期格式转换为日期,我的日期字符串格式为 接下来,我没有运气尝试。 以上所有语句都给出了解析错误。 问题答案: 请阅读的文档time.Parse: 该布局通过显示参考时间(定义为 2006年1月2日星期一15:04:05-0700 如果它是值,将被解释;它用作输入格式的示例。然后将对输入字符串进行相同的解释。 所以正确的格式是

  • 问题内容: 如何将类似“ 01-Jan-1995”的字符串解析为Python对象? 问题答案: 总体来说,您可以使用或模块中的函数来分析日期和时间字符串。您的示例可以解析为: 请注意,解析月份的名称是与语言环境相关的。下表显示了用于解析日期和时间的各种格式的指令。

  • (我想)快速提问。如何将解析为(将时间设置为)? java.time.format.DateTimeParseException:无法分析文本“2007-07-21+00:00”:无法从TemporalAccessor获取OffsetDateTime:{offsetseconds=0},ISO解析为类型java.time.format.Parsed的2007-07-21

  • 我正在尝试在中解析这些日期,然后获取表示形式。 我阅读了这个类似的答案,并创建了一个方法来解析上述日期并返回具有所需格式的: 然而,没有一个图案是匹配的。我这里缺少什么? 更新:在这两个日期中,我都收到了字符的异常。

  • 这是当我尝试使用'where'而不是'where field'时收到的错误,尽管从文档中看,'where'似乎是查询Firestore数据库的有效命令。是不是我需要下载其他的豆荚?我有的是:pod'firebase/analytics'pod'firebase/auth'pod'firebase/core'pod'firebase/firestore'