2016-12-04 4 views
1

Я использую FirebaseListAdapter и пытается получить список открытых чатов из моей Firebase базы данных, структура довольно проста:Android Firebase Вложенный запрос

Database Structure

Это то, что я получаю, когда я запрашиваю :

{-KY99IS2mLzayD4HDyd6={location={...}, posts={....} , title="chatname"} 

И то, что я пытаюсь достичь, чтобы получить данные без ID части, так что это будет соответствовать моему объекту строитель, что-то вроде этого:

{location={...}, posts={....} , title="chatname"} 

Я знаю, что ChildEventListener делает это, но у меня нет возможности использовать его с FirebaseListAdapter, поэтому я надеюсь, что есть другой способ сделать это.

Мой код:

FirebaseListAdapter<ChatRoom> firebaseListAdapter = new FirebaseListAdapter<ChatRoom>(this,ChatRoom.class,R.layout.chatslist_row,myRef3) { 
     @Override 
     protected void populateView(View v, ChatRoom chatRoom, int position) { 
      System.out.println(chatRoom.title); 
     } 

    }; 

Но это не работает из-за ключевой части, он не может использовать мой ChatRoom класс объектов строитель.

Спасибо!

+0

Аналогичный вопрос я верю http://stackoverflow.com/questions/40802754/android-firebase-list-data-from-keys/40812418#40812418. –

+0

@ JohnO'Reilly На самом деле нет, это другое –

+0

Сходство, о котором я думал, было наличие вложенных данных, которые вам нужно было бы выполнить отдельный запрос для извлечения .... Повторное чтение вашего вопроса Я не понимаю, если это так или нет, о чем вы говорите? –

ответ

1

Вы можете сначала получить идентификатор (KY99IS2mLzayD4HDyd6) из прослушивателя дочерних событий. Затем сделана новая ссылка на базу данных с идентификатором (KY99IS2mLzayD4HDyd6) и снова вызовите дочерний прослушиватель событий. mDatabase = databaseRef.getReference("chats/KY99IS2mLzayD4HDyd6"); если вы звоните mDatabase, сейчас вы получите {location={...}, posts={....} , title="chatname"}.

Я решил проблему таким образом. Но не для FirebaseListAdapter. Создайте свой собственный список и адаптер, это может быть более гибким.

+0

А, так что в принципе нет никакого способа сделать это, и мне нужно будет сделать это по-старому. хорошо, спасибо –

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