Как извлечь индексированные данные из более чем одной конечной точки при использовании FirebaseRecycler? - PullRequest
0 голосов
/ 19 ноября 2018

Я изучаю FirebaseUI для создания списка чата, который показывает список всех чатов для пользователя вместе с последним сообщением, именем и фотографией участника. Моя модель данных выглядит примерно так:

  users:
     userid1:
       name: MyName
       profilePicUrl: <here>
     userid2:
       name: HisName
       profilePicUrl: <here>

   userchats:
      userid1:
         chatgrp1
         chatgrp2

   chatgroups:
      chatgrp1:
        participants: <userId2>
        lastMessage: "This..."

Я могу использовать индексированный запрос, чтобы получить список групп чата для пользователя и затем содержимое для каждой. Но мне также нужно имя и фото профиля для участников. Я не могу понять, как это сделать с помощью firebaseUI. Возможно ли это с помощью FirebaseUI?

В настоящее время я делаю что-то подобное:

Query keyQuery = FirebaseDatabase.getInstance()
            .getReference()
            .child("userchats/userid1");

    DatabaseReference dataRef = FirebaseDatabase.getInstance()
            .getReference("chatgroups");

    FirebaseRecyclerOptions<FirebaseConversationRecord> options = new FirebaseRecyclerOptions.Builder<FirebaseConversationRecord>()
            .setIndexedQuery(keyQuery, dataRef, FirebaseConversationRecord.class)
            .build();

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

1 Ответ

0 голосов
/ 05 декабря 2018

На основе обсуждений с командой Firebase-UI эта функция еще не поддерживается.

https://github.com/firebase/FirebaseUI-Android/issues/1534

...