Java 对事件侦听器的Firebase数据库引用

Java 对事件侦听器的Firebase数据库引用,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,您好,在我的Firebase数据库中,我试图访问一个子“Chatmessages”,收集它的所有密钥,并使用它们在子“Users”中找到相应的密钥,并收集其信息。我通过使用eventlisteners查询两次来实现这一点。尽管我如何在loadUserlist()方法中将其应用于chatIDref 数据库结构: rootRef=FirebaseDatabase.getInstance().getReference(); chatIdRef=rootRef.child(“Chatmessages”

您好,在我的Firebase数据库中,我试图访问一个子“Chatmessages”,收集它的所有密钥,并使用它们在子“Users”中找到相应的密钥,并收集其信息。我通过使用eventlisteners查询两次来实现这一点。尽管我如何在loadUserlist()方法中将其应用于chatIDref

数据库结构:

rootRef=FirebaseDatabase.getInstance().getReference();
chatIdRef=rootRef.child(“Chatmessages”).child(最后一个);
eventListener=新值eventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
对于(DataSnapshot ds:DataSnapshot.getChildren()){
字符串uid=ds.getKey();
usersRef=rootRef.child(“用户”).child(uid);
ValueEventListener eventListener=新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
String image=dataSnapshot.child(“image”).getValue(String.class);
String name=dataSnapshot.child(“name”).getValue(String.class);
Boolean onlineStatus=dataSnapshot.child(“onlineStatus”).getValue(Boolean.class);
字符串状态=dataSnapshot.child(“用户名”).getValue(String.class);
Log.d(“标签”,图像+“/”+名称+“/”+在线状态+“/”+状态);
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){}
};
usersRef.addListenerForSingleValueEvent(eventListener);
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){}
};
chatIdRef.addListenerForSingleValueEvent(eventListener);
chatIdRef.keepSynced(true);
setHasFixedSize(true);
setLayoutManager(新的LinearLayoutManager(getContext());
返回用户视图;
}
公共void loadUserList(){
FirebaseRecyclerAdapter FirebaseRecyclerAdapter=新的FirebaseRecyclerAdapter(
User.class,
R.layout.userlist\u布局,
UserViewHolder.class,
查蒂德里夫
)

我不明白您想要实现什么?loadUserList方法的目的是什么?我不明白您想要实现什么?loadUserList方法的目的是什么?
    rootRef = FirebaseDatabase.getInstance().getReference();
    chatIdRef = rootRef.child("Chatmessages").child(last);
    eventListener = new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for(DataSnapshot ds : dataSnapshot.getChildren()) {
                String uid = ds.getKey();
                usersRef = rootRef.child("Users").child(uid);
                ValueEventListener eventListener = new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        String image = dataSnapshot.child("image").getValue(String.class);
                        String name = dataSnapshot.child("name").getValue(String.class);
                        Boolean onlineStatus = dataSnapshot.child("onlineStatus").getValue(Boolean.class);
                        String status = dataSnapshot.child("username").getValue(String.class);
                        Log.d("TAG", image + " / " + name + " / " + onlineStatus + " / " + status);
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {}
                };
                usersRef.addListenerForSingleValueEvent(eventListener);

            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {}
    };
    chatIdRef.addListenerForSingleValueEvent(eventListener);

    chatIdRef.keepSynced(true);
    userlist.setHasFixedSize(true);
    userlist.setLayoutManager(new LinearLayoutManager(getContext()));
    return userView;
}

public void loadUserList() {
    FirebaseRecyclerAdapter<User, UserViewHolder> firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<User, UserViewHolder>(
            User.class,
            R.layout.userlist_layout,
            UserViewHolder.class,
            chatIdRef
    )