【发布时间】:2018-07-29 05:10:43
【问题描述】:
我只想检索所有具有“request_type:receive”的用户。我将如何在 android studio 中做到这一点?它用于请求片段的聊天应用程序。我只想在 RecyclerView 中显示所有好友请求。
【问题讨论】:
标签: android firebase firebase-realtime-database
我只想检索所有具有“request_type:receive”的用户。我将如何在 android studio 中做到这一点?它用于请求片段的聊天应用程序。我只想在 RecyclerView 中显示所有好友请求。
【问题讨论】:
标签: android firebase firebase-realtime-database
查看下面的查询。它可以帮助你。
Query query = FirebaseDatabase.getInstance().getReference().child("Friend_req").orderByChild("request_type").equalTo("received");
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
// Do your job
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
【讨论】:
Friend_req之后的数据库中也有两个子节点
要解决这个问题,您需要使用getChildren() 方法两次循环您的Friend_req 节点:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref = rootRef.child("Friend_req");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot dSnapshot : dataSnapshot.getChildren()) {
for(DataSnapshot ds : dSnapshot.getChildren()) {
String requestType = ds.child("request_type").getValue(String.class);
if(requestType.equals("receive")) {
Log.d("TAG", "Request received!");
}
}
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
ref.addListenerForSingleValueEvent(valueEventListener);
【讨论】: