无法使用.startAt()和datetime(以毫秒为单位)

时间:2017-06-14 22:40:21

标签: android firebase firebase-realtime-database

我对这篇文章有一个非常类似的问题 - Firebase Query filtered by creation time and where date is greater than now

我的日期存储在“消息”中,我希望在当前时间之后检索所有消息。enter image description here

此查询有效:

Query myTopPostsQuery = mFirebaseDatabaseReference.child(MESSAGES_CHILD).orderByChild("time"); 

此查询不返回任何数据:

Query myTopPostsQuery = mFirebaseDatabaseReference.child(MESSAGES_CHILD).orderByChild("time").startAt(System.currentTimeMillis()); 

这似乎应该有效但是来自the docs我想知道这是否是数据类型问题?

1 个答案:

答案 0 :(得分:2)

在您的查询中,您需要指定用于订购的子路径的完整路径:

orderByChild("date/time")

您表明您的第一个查询有效。它可能会返回您期望的消息数量,但如果您查看它们,您会发现它们没有订购。查询处理是宽容的。如果找不到由orderByChild()标识的子项的值,则会为其分配值为null和orders by these rules