2 回答
TA贡献1911条经验 获得超7个赞
为了能够获取子数据,请尝试以下操作:
DatabaseReference reference = FirebaseDatabase.getInstance().getReference("users").child("User1").child("MSG_TYPE_SENT");
reference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot datas: dataSnapshot.getChildren()){
String msgContent=datas.child("msgContent").getValue().toString();
String msgType=datas.child("msgType").getValue().toString();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
这将为您提供msgContent和msgType,要从数据库中检索任何数据,您需要通过每个节点示例:-
getReference("users").child("User1").child("MSG_TYPE_SENT");
然后您可以在 id 内循环并检索数据。
TA贡献1780条经验 获得超1个赞
在这里您可以获取收到的 User2 消息
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("users");
mDatabase.child("User2").child("MSG_TYPE_RECEIVED").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot spanshot : dataSnapshot.getChildren()){
String content=snapshot.child("msgContent").getValue(String.class);
String type=snapshot.child("msgType").getValue(String.class);
//then you can log those values
Log.d("Values:",""+content+""+type);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
如果收到的消息在任何时候发生变化(假设您想实时实现消息的删除选项,例如 whatsapp).addValueEventListener,如果您已编码以显示消息已被删除,则会实时更新您的 UI
添加回答
举报