firebase查询如何从child中检索两个特定的值



我使用recyclerview来检索聊天消息,我想知道是否有方法来检索两个不同的值,我的意思是:

FirebaseRecyclerOptions<enchat> options = 
new FirebaseRecyclerOptions.Builder<enchat>()
.setQuery(
mChatDatabase.orderByChild("state").equalTo("sent")
&& mChatDatabase.orderByChild("state").equalTo("received"),
enchat.class)
.build();

没有办法将两个值传递到一个条件中。Firebase实时数据库不支持这种类型的OR条件。

另请参阅:

  • 基于Firebase中多个where子句的查询
  • Firebase中的iOS-OR查询

常见的解决方法有:

  • 执行两个查询并将结果合并到应用程序代码中。但在这种情况下,您将无法使用FirebaseUI中的适配器。

  • 执行范围查询,但仅当receivedsent之间没有state值时才有效。如果是这种情况,那么查询可能是:

    mChatDatabase.orderByChild("state").startAt("received").endAt("sent")
    
  • 添加一个当statereceivedsent时为true的附加属性,并对其进行过滤:

    mChatDatabase.orderByChild("stateIsReceivedOrSent").equalTo(true)
    

相关内容

  • 没有找到相关文章

最新更新