2016-12-18 2 views
1

У меня есть список users, каждый из которых имеет список объектов с именем chatRoomList. enter image description hereКак получить список объектов из Firebase

Как я могу получить этот список из своей БД? К сожалению, я не могу это сделать:

User user = dataSnapshot.getValue(User.class); 
       if (user.getObjectId().equals(myId)) { 
       List<ActiveChatRoom> list = user.getActiveChatRooms(); 

       } 

Я пытался перебирать результат

for (DataSnapshot child : dataSnapshot.getChildren()) { 

         Log.e(TAG, "User val " + child.getValue().toString()); 

        } 

Но я не знаю, что делать со значением я получаю:

User val {-KZGY1PWEFgMoHIap8Ew={receiversName=Test2, chatRoomId=-KZGY1KxX6zeUr3zAVNL, receiversPic=www.url.com}, -KZGXztjZ73GhCaabrBg={receiversName=Test, chatRoomId=-KZGXzp5jp4br0AL6edD, receiversPic=www.url.com}} 

ответ

1

Класс User должен содержать следующие (при условии, что у вас есть ChatRoom java-класс):

Map<String,ChatRoom> chatRoomList;

+0

Спасибо! Поэтому я должен использовать «Map» из-за структуры Firebase? –

+0

@GidiSprintzin да, точно –

0
DatabaseReference frndMuteRef = FirebaseDatabase.getInstance().getReference().child("users/" + getFirebaseUser().getUid().trim() + "/friendlists"); 
     Query queryRef = frndMuteRef.orderByChild(MUTE).equalTo(YES); 
     queryRef.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

       GenericTypeIndicator<HashMap<String,MuteModel>> t= new GenericTypeIndicator<HashMap<String,MuteModel>>() { }; 

       HashMap<String,MuteModel> hashMap= (HashMap<String,MuteModel>)dataSnapshot.getValue(t); 

       if(hashMap!=null) { 
        muteModelList = new ArrayList<MuteModel>(hashMap.values()); 
        for (MuteModel muteModel: muteModelList){ 
         muteModel.setIsgroup(NO); 
        } 

       }else{ 
        muteModelList = new ArrayList<MuteModel>(); 


       } 



      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 

      } 
     }); 

Упакуйте MuteModel просто передать модель чата object.Use ссылка как yourrootreference +"/chatRoomList" .Я думаю, что это будет делать работу

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