2016-09-11 2 views
0

Это моя база данных в firebaseAndroid - Firebase базы данных доступа к югу каталог

{ 
    "Rooms" : { 
    "room1" : { 
     "Header" : { 
     "Recipient" : "JZrMZeE6JXYULHRtDbksfagnQE53", 
     "Sender" : "fD0E2IbeGub53n1muYSYX88N6US2" 
     }, 
     "Message" : { 
     "MESSAGE-QWEASD" : { 
      "Message" : "Hello World", 
      "Name" : "fD0E2IbeGub53n1muYSYX88N6US2" 
     } 
     } 
    } 
    } 
} 

Когда я вижу в руководстве базы данных firebase, она всегда требует определенного местоположения для доступа к данным. Однако я хочу получить доступ к подкаталогу (room1) основного каталога (Номера) без указания его имени. На данный момент мне нужно указать имя для доступа к данным внутри своего имени комнаты.

dataSnapshot.child("Rooms").child("room1").getValue().toString() 

Есть метод, который возвращает строку имени подкаталога в

+0

ли перебирать всех детей определенного узла? – Sunshinator

+0

Вы можете использовать getChildren(), но он будет перечислять все непосредственные дети вашего узла «Комнаты». – RamithDR

+0

Да, только что нашел код: dataSnapshot.child («Номера»). GetChildren(). Iterator(). Next(). GetKey(). ToString() – MyNameIsAsker

ответ

0

Если вы хотите получить доступ к номерам, необходимую для создания комнат объекта, как ваши узлы выше. Но я думаю, что у вас есть room1, room2, room3 ... и ваша структура должна быть такой (список массивов в комнате объектов, чтобы легко разобрать как объектную комнату). Ключ не меняется.

{ 
    "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-QWEASD, только сообщение и имя, чтобы сделать его легко, как объект.

И наконец

List<Room> rooms = (List<Room>)dataSnapshot.child("Rooms").getValue(); 
+0

это не то, что я хотел, но его хорошее предложение для меня благодарит вы – MyNameIsAsker

Смежные вопросы