Java 对事件侦听器的Firebase数据库引用
您好,在我的Firebase数据库中,我试图访问一个子“Chatmessages”,收集它的所有密钥,并使用它们在子“Users”中找到相应的密钥,并收集其信息。我通过使用eventlisteners查询两次来实现这一点。尽管我如何在loadUserlist()方法中将其应用于chatIDref 数据库结构: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”
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
)