小编Ray*_*újo的帖子

Firebase Java Android中的OR子句

有谁知道我可以在firebase中的where子句中执行常见的“ OR”操作?

我需要在查询中执行此操作,因为我正在将查询发送到适配器。因此,我的意思是,我无法添加侦听器并检查一个值,然后再检查另一个值。我需要在查询中指向该结果的完整查询。

我所拥有的是这样的:

chat1:
   user1Id: "1"
   user2Id: "2"
   bothUsers: "1_2"

chat2:
   user1Id: "2"
   user2Id: "4"
   bothUsers: "2_4"
Run Code Online (Sandbox Code Playgroud)

我需要获取ID为“ 2”的用户的所有聊天记录。我正在尝试像这样的查询:

userLogged = 2;
Query queryRef = firebase.orderByChild("user2Id").equalTo(userLogged);
Run Code Online (Sandbox Code Playgroud)

但是,只有在用户2处于user2Id位置时,它才会获得聊天。但是在上面的示例中,当用户2位于user1Id(chat2)中时,它将不会获得。我需要得到它。我怎样才能做到这一点?

java android where firebase

5
推荐指数
1
解决办法
195
查看次数

Firebase获取最后一个id - limitToLast无效 - android

我正在尝试获取我的消息节点的最后一个ID,但它没有得到最后一个.例如,我的最后一个id是12,但它总是返回项目10的id.我的代码是这样的:

final Query query = firebase.orderByChild("messageId").limitToLast(1);
query.addListenerForSingleValueEvent(new ValueEventListener() {

   public void onDataChange(DataSnapshot dataSnapshot) { 

      Log.i("MessagesFrag","snapshot: "+dataSnapshot.getValue()+""); 

   }

   public void onCancelled(FirebaseError firebaseError) {}

});
Run Code Online (Sandbox Code Playgroud)

它返回如下内容:

{10={chatId=6, time=Wed Apr 13 22:20:43 EDT 2016, message=hi, user=123, messageId=10}}
Run Code Online (Sandbox Code Playgroud)

它应该返回:

{12={chatId=6, time=Wed Apr 13 22:29:02 EDT 2016, message=I am fine, user=1234, messageId=12}}
Run Code Online (Sandbox Code Playgroud)

我的数据是这样的:

messages
  9:
    chatId: "6"
    message: "hi"
    messageId: "9"
    time: "Wed Apr 13 22:29:02 EDT 2016"
    user: "123"
  10:
    chatId: "6"
    message: "hello"
    messageId: "10"
    time: "Wed Apr 13 22:29:02 EDT 2016"
    user: …
Run Code Online (Sandbox Code Playgroud)

android firebase

5
推荐指数
1
解决办法
2574
查看次数

标签 统计

android ×2

firebase ×2

java ×1

where ×1