2016-12-18 10 views
1

私はusersのリストを持っていますが、それぞれにchatRoomListという名前のオブジェクトのリストがあります。 enter image description hereFirebaseからオブジェクトリストを取り出す方法

DBからこのリストを取得するにはどうすればよいですか? 残念ながら、私はこれを行うことはできません。私は結果

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

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

        } 

を反復処理しようとした

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

       } 

しかし、私は値をどうするのか分からない私が取得:

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

答えて

1

Userクラスには次のものを含める必要があります(たとえば、ChatRoom Javaクラスがあると仮定します)。

MuteModelの包みなさい

Map<String,ChatRoom> chatRoomList;

+0

感謝をやるだろうと思いobject.Useチャットモデルを渡します!だからFirebaseの構造のために 'Map'を使わなければなりませんか? –

+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) { 

      } 
     }); 

だけyourrootreference +"/chatRoomList" .I同様の参照は、この仕事に

関連する問題