这是我在firebase中的数据库
{
"Rooms" : {
"room1" : {
"Header" : {
"Recipient" : "JZrMZeE6JXYULHRtDbksfagnQE53",
"Sender" : "fD0E2IbeGub53n1muYSYX88N6US2"
},
"Message" : {
"MESSAGE-QWEASD" : {
"Message" : "Hello World",
"Name" : "fD0E2IbeGub53n1muYSYX88N6US2"
}
}
}
}
}
当我看到firebase数据库的指南时,它总是需要一个指定的位置来访问数据。但是,我想访问主目录(Rooms)的子目录(room1)而不指明其名称。现在,我需要指明名称来访问其房间名称中的数据。
dataSnapshot.child("Rooms").child("room1").getValue().toString()
是否有方法返回子目录的名称
的字符串答案 0 :(得分:0)
如果要访问Rooms,则需要像上面的节点一样创建Rooms对象。 但我认为你有room1,room2,room3 ......你的结构需要像那样(对象室中的数组列表易于解析为Object Room)。钥匙不会改变。
{
"Rooms" : [
{
"name" : "room1",
{
"Header" : {
"Recipient" : "JZrMZeE6JXYULHRtDbksfagnQE53",
"Sender" : "fD0E2IbeGub53n1muYSYX88N6US2"
},
"Message" : {
"MESSAGE-QWEASD" : {
"Message" : "Hello World",
"Name" : "fD0E2IbeGub53n1muYSYX88N6US2"
}
}
}
}
{
"name" : "room2",
....
}
]
}
class Room {
String name;
Header Header;
Message Message;
}
class Header {
String Recipient;
String Sender;
}
与Message类似,但我认为需要轻松删除MESSAGE-QWEASD,只有Message和Name才能轻松地将其作为Object。
最后
List<Room> rooms = (List<Room>)dataSnapshot.child("Rooms").getValue();