我正在制作聊天应用,我成功地聊天功能。现在,我想防止重复的用户名。所以我需要Datasnapshot键的子元素。
我在主Activity中定义了Firebase数据库:
FirebaseDatabase db;
db=FirebaseDatabase.getInstance();
DatabaseReference dbref = db.getReference("Slitherio 1");
dbref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> keys = dataSnapshot.getChildren();
for(DataSnapshot key :keys){
Log.d("key",key.getValue().toString());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
key.getValue().toString()
带来了msg和名字对。
01-21 19:18:57.168 15747-15747/gc.guideforslitherionohacknocheats D/key: {msg=hey, name=admin}
01-21 19:18:57.168 15747-15747/gc.guideforslitherionohacknocheats D/key: {msg=hello, name=SlitherP}
01-21 19:18:57.168 15747-15747/gc.guideforslitherionohacknocheats D/key: {msg=h, name=harry}
01-21 19:18:57.168 15747-15747/gc.guideforslitherionohacknocheats D/key: {msg=d, name=harry}
01-21 19:18:57.168 15747-15747/gc.guideforslitherionohacknocheats D/key: {msg=s, name=s}
01-21 19:18:57.168 15747-15747/gc.guideforslitherionohacknocheats D/key: {msg=d, name=d}
01-21 19:18:57.168 15747-15747/gc.guideforslitherionohacknocheats D/key: {msg=d, name=d}
01-21 19:18:57.168 15747-15747/gc.guideforslitherionohacknocheats D/key: {msg=selam, name=s}
01-21 19:18:57.168 15747-15747/gc.guideforslitherionohacknocheats D/key: {msg=ms, name=n}
但我想带上儿童元素的名称。 如何检索子元素的名称?
答案 0 :(得分:1)
创建消息类
public class Message {
private String msg;
private String name;
// Add getters and setters
}
获取消息值
Message message = key.getValue(Message.class);
Log.d("key", message.getName());
答案 1 :(得分:0)
在您的活动中创建DatabaseReference:
DatabaseReference yourDBRef = FirebaseDatabase.getInstance().getReference("ChildName");
//If you have more than one child in your firebase database.
DatabaseReference refwithinref = yourDBRef.child("ChildName1");
yourDBRef.addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapShot datasnapshot){
String sample = datasnapshot.getValue(String.class);
//Print the value of the child.
Toast.makeText(getApplicationContext(),""+sample,Toast.LENGTH_SHORT).show();
}});