【发布时间】:2018-06-11 11:35:24
【问题描述】:
我刚开始在 Android 中使用 Firebase,我写了这样的查询。
messageSearchQuery = FirebaseDatabase.getInstance().getReference().child("Message")
.child(conversationID).limitToLast(INITIAL_MESSAGE_COUNT)
.orderByChild("timestamp").startAt(participant.joiningDate).endAt(endAt);
我只能给limitToFirst、limitToLast、startAt、endAt。 (我认为没有中心)
我需要提供时间戳(例如上午 10 点),我想在上午 10 点之前查询 10 条消息,在上午 10 点之后查询 10 条消息。 (但我不知道它什么时候开始,什么时候结束)。
编辑
我想做的是这样的。
messageSearchQuery = FirebaseDatabase.getInstance().getReference().child("Message").
child(conversationID).
orderByChild("timestamp").equalTo(endAt).limitToFirst(INITIAL_MESSAGE_COUNT).limitToLast(INITIAL_MESSAGE_COUNT);
但如果我这样做,它会像这样崩溃。
java.lang.IllegalArgumentException: Can't call limitToLast on query with previous set limit!
我该怎么办?
我在 firebase 中的数据是这样的。
【问题讨论】:
-
我的快速回答如下。如果这对您不起作用,请多展示您正在尝试做的事情。例如。看到你的 JSON 真的很有帮助(作为文本,请不要截图)。您可以通过单击Firebase Database console 中的“导出 JSON”链接来获取此信息。如果您将所有我们看不到的变量替换为重现问题的硬编码值,也会有所帮助。
-
@FrankvanPuffelen 我已经放了我的样本数据。
标签: android firebase firebase-realtime-database