【带有范围的Android Firebase查询(上方,中间,下方)】满堂花醉三千客,一剑霜寒十四洲。这篇文章主要讲述带有范围的Android Firebase查询(上方,中间,下方)相关的知识,希望能为你提供帮助。
我刚开始在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:无法在先前设置的限制的查询上调用limitToLast!我该怎么办?
我在firebase中的数据是这样的。
文章图片
答案您可以通过组合
startAt
和endAt
来选择一个范围,这两个范围都对您订购的孩子进行操作。例如,如果您希望在特定日期的上午10点到晚上10点之间发送消息,您可以执行以下操作:long timestampOf10am = ...;
long timestampOf10pm = ...;
messageSearchQuery = FirebaseDatabase.getInstance().getReference().child("Message")
.child(conversationID)
.orderByChild("timestamp").startAt(timestampOf10am).endAt(timestampOf10pm)
.limitToLast(INITIAL_MESSAGE_COUNT);
更新:如果您在上午10点之前需要10个项目,在上午10点之后需要10个项目,则需要触发两个查询并将结果合并到客户端。
long timestampOf10am = ...;
beforeMessageSearchQuery = FirebaseDatabase.getInstance().getReference().child("Message")
.child(conversationID)
.orderByChild("timestamp").startAt(timestampOf10am)
.limitToFirst(INITIAL_MESSAGE_COUNT);
afterMessageSearchQuery = FirebaseDatabase.getInstance().getReference().child("Message")
.child(conversationID)
.orderByChild("timestamp").endAt(timestampOf10am)
.limitToLast(INITIAL_MESSAGE_COUNT);
推荐阅读
- 从Firebase实时数据库读取Android数据并在RecyclerView上显示
- 类'test_coredataAppDelegate'的重复接口声明
- 如何在Kali Linux中通过TOR路由所有机器流量
- 如何解决VirtualBox MacOS Mojave 10.14.3中的”无法连接到服务器” Mac App Store错误
- XAMPP虚拟主机可在Chrome和Firefox中使用,但不适用于Microsoft Edge浏览器
- 在Kali Linux中执行不定长度的真正的lololoris攻击(SlowHTTP)
- 如何解决Kali Linux CLI错误(无法获取锁/var/lib/dpkg/lock –打开(9:资源暂时不可用))
- 如何使用Instainsane通过字典攻击来破解Instagram帐户
- 如何在Kali Linux中使用findmyhash破解不同的哈希算法,例如MD5,SHA1