firebase orderbychild返回错误的结果

oknwwptz  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(252)

我正在从firebase数据库中搜索以字符串类型转换的格式化日期范围的记录。我正在requestplacedate上调用筛选查询。

Query query = ordersDatabaseRef.limitToFirst(1000).orderByChild(ConstanceFnc.requestPlacedDate).startAt(startDate).endAt(endDate);
    query.addListenerForSingleValueEvent(orderListener);


firebase返回数据,包括上一个日期和下一个日期,而不是返回特定的日期范围数据,这是我对 startAt() and endAt()

yhived7q

yhived7q1#

我正在从firebase数据库中搜索以字符串类型转换的格式化日期范围的记录。
你没有得到想要的结果,因为你的 requestPlacedDate 字段包含字符串而不是时间戳。对字符串元素进行排序时,顺序是按字典顺序排列的。我回答了一个类似的问题,因此请检查我在以下帖子中的回答:
如何根据密钥在firebase控制台中排序节点
为了实现结果的正确顺序,您应该将字段的类型更改为timestamp,正如我在以下帖子的回答中所解释的:
向firebase实时数据库添加新值时如何保存当前日期/时间
一旦您的字段保存了时间戳值,您的查询就会工作得很好。

相关问题