[英]how to get first child node in realtimedatabase firebase
我试图只获取这个孩子的数据,并通过使用addValueEventListener
从起始词到 [to] 词的子字符串在列表视图中显示它,但无论如何他在onDataChange
方法中得到一个错误......
我试图通过此代码获取此数据
FirebaseDatabase.getInstance().getReference().child("chats").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
if (ds.getValue().toString().contains(getIntent().getStringExtra("displayName"))) {
chat_childs += ds.getValue().toString() + "\n";
String doctorName = chat_childs.substring(0, chat_childs.lastIndexOf("to"));
allDoctorsModels.add(new AllDoctorsModel(doctorName, "", ""));
}
}
allDoctorsAdapter = new AllDoctorsAdapter(patient_message.this,allDoctorsModels,getIntent().getStringExtra("displayName"));
recyclerView.setAdapter(allDoctorsAdapter);
progressDialog.dismiss();
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
要将第一个孩子Doc Ahmed Rafaat to Pat Ahmed El-Nakib
,请执行以下操作:
FirebaseDatabase.getInstance().getReference().child("chats").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String key = ds.getKey();
if(key.contains("Doc Ahmed Rafaat to Pat Ahmed El-Nakib")
{
String doctorName = key.subString(4,16);
allDoctorsModels.add(new AllDoctorsModel(doctorName, "", ""));
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
首先在chats
的直接子级内部循环,然后检索所有键并检查键是否包含Doc Ahmed Rafaat to Pat Ahmed El-Nakib
然后在变量key
上使用subString
您可以检索名称Ahmed Rafaat
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.