【问题标题】:How to get all users from firebase database that send friend request如何从发送好友请求的firebase数据库中获取所有用户
【发布时间】:2018-07-29 05:10:43
【问题描述】:

我只想检索所有具有“request_type:receive”的用户。我将如何在 android studio 中做到这一点?它用于请求片段的聊天应用程序。我只想在 RecyclerView 中显示所有好友请求。

Image

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    查看下面的查询。它可以帮助你。

    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之后的数据库中也有两个子节点
    • 请简化您的数据库。就像,用户名 | friend_request --> pushid --> "sender_id", "timestamp" 您可以通过在嵌套循环中查询来获得结果。但这可能不是一个好习惯。
    【解决方案2】:

    要解决这个问题,您需要使用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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-10
      • 2020-09-13
      • 2014-04-19
      相关资源
      最近更新 更多