我正在从firebase数据库中搜索以字符串类型转换的格式化日期范围的记录。我正在requestplacedate上调用筛选查询。
Query query = ordersDatabaseRef.limitToFirst(1000).orderByChild(ConstanceFnc.requestPlacedDate).startAt(startDate).endAt(endDate);
query.addListenerForSingleValueEvent(orderListener);
firebase返回数据,包括上一个日期和下一个日期,而不是返回特定的日期范围数据,这是我对 startAt() and endAt()
1条答案
按热度按时间yhived7q1#
我正在从firebase数据库中搜索以字符串类型转换的格式化日期范围的记录。
你没有得到想要的结果,因为你的
requestPlacedDate
字段包含字符串而不是时间戳。对字符串元素进行排序时,顺序是按字典顺序排列的。我回答了一个类似的问题,因此请检查我在以下帖子中的回答:如何根据密钥在firebase控制台中排序节点
为了实现结果的正确顺序,您应该将字段的类型更改为timestamp,正如我在以下帖子的回答中所解释的:
向firebase实时数据库添加新值时如何保存当前日期/时间
一旦您的字段保存了时间戳值,您的查询就会工作得很好。