在Firebase中查询两个孩子

时间:2018-02-14 17:35:55

标签: android firebase firebase-realtime-database

enter image description here

   Query q  = FirebaseDatabase.getInstance().getReference().child("Chats").orderByChild("senderkey")

    .equalTo(FirebaseAuth.getInstance().getCurrentUser().getUid());

在上面的代码中,我使用sender = x进行查询,如果我想发表此声明senderkey = xreceiverkey = y,该怎么办? 总之,如何在firebase中使用AND?

,因为:

我通过senderkey查询显示数据,但我不想再次显示重复数据,如果发送者密钥重复,我希望它显示一次

2 个答案:

答案 0 :(得分:0)

我不认为这是可能的。您无法查询多个孩子。如果您知道您想要具有特定发件人ID的最后一封邮件,则可以使用limitToLast()功能,这将消除重复的问题。

有关Firebase数据库查询的详细信息,请访问:https://firebase.google.com/docs/database/admin/retrieve-data

答案 1 :(得分:0)

firebase实时数据库中不允许这些类型的查询您可以将firestore用于多个查询的地方。

如果你想坚持使用firebase实时数据库,那么你应该处理你的数据模型并创建组合键来搜索和执行AND操作。

例如,要执行AND操作,您需要创建一个键

  

“name_createdAt”=“chickungunya_moka”

然后查询

  。

orderByChild( “name_reportedAt”)equalsTo(名称+ “_” + reportedAt);