我正在尝试使用 firebase 数据库制作聊天应用程序,但遇到了一些问题。
这是我的数据库。我想向消息添加一个监听器,但仅用于 User->UID->chats->Chat IDs
的值。我怎样才能做到这一点?
最佳答案
您需要执行两次:首先根据用户 ID 获取聊天 ID 列表,然后获取每个聊天 ID 的消息数据。
// consider you have you user (FirebaseUser) object ready
FirebaseDatabase.getInstance().getReference("Users/" + user.uid + "/chats")
.addListenerForSingleValueEvent(new ValueEventListener() {
... onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
FirebaseDatabase.getInstance().getReference("Messages/"+snapshot.getKey())
.addListenerForSingleValueEvent(...
... onDataChange(DataSnapshot messageSnapshot) {
// I changed the snapshot name to make it easier to read
// here messageSnapshot.getKey() is message ID
// and messageSnapshot.getValue() will contain data you need (I think)
}
...
);
}
}
...
});
希望这有帮助
关于java - Firebase 数据库仅监听特定子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43028926/