如何解决Firebase查询如何从子级检索两个特定值
我使用recyclerview检索聊天消息,我想知道是否有方法可以检索两个不同的值,我的意思是这样的:
FirebaseRecyclerOptions<enchat> options =
new FirebaseRecyclerOptions.Builder<enchat>()
.setQuery(
mChatDatabase.orderByChild("state").equalTo("sent")
&& mChatDatabase.orderByChild("state").equalTo("received"),enchat.class)
.build();
解决方法
无法将两个值传递给条件。 Firebase实时数据库不支持这种OR条件。
另请参阅:
常见的解决方法是:
-
执行两个查询并将结果合并到您的应用程序代码中。但是在这种情况下,您将无法使用FirebaseUI中的适配器。
-
执行范围查询,但这仅在
state
和received
之间没有sent
值的情况下有效。如果是这样,查询可能是:mChatDatabase.orderByChild("state").startAt("received").endAt("sent")
-
添加一个附加属性,当
state
为received
或sent
时为true,并对其进行过滤:mChatDatabase.orderByChild("stateIsReceivedOrSent").equalTo(true)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。