Как добавить дочерний элемент в цикле как userId в firebase - PullRequest
1 голос
/ 10 ноября 2019

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

please follow this image.

Но я хочу вместо 0 указать идентификатор пользователя и дату как объект. Пожалуйста, посмотрите на мой код:

final String idGroup = (StaticConfig.UID + System.currentTimeMillis()).hashCode() + "";
final String currentDate = DateFormat.getDateInstance().format(new Date());
Room room = new Room();
for (String id : listIDChoose) {
  AddGroupUser addGroupUser = new AddGroupUser();
  addGroupUser.date = currentDate;
  addGroupUser.user = id;
  room.member.add(addGroupUser);
}
room.groupInfo.put("name", gName);
room.groupInfo.put("admin", StaticConfig.UID);
room.groupInfo.put("avatar",image);
FirebaseDatabase.getInstance().getReference().child("group/" + idGroup).setValue(room).addOnCompleteListener(new OnCompleteListener<Void>() {
   @Override
   public void onComplete(@NonNull Task<Void> task) {
        ToastMessage("Group Created");
   }
});

Как изменить мой объект, чтобы я мог получить следующий результат. Любая помощь будет очень благодарна. Спасибо !!

1 Ответ

0 голосов
/ 10 ноября 2019

В вашем классе Room у вас есть List< AddGroupUser>. А Firebase преобразует List в индексы с нулями в формате JSON.

Чтобы иметь возможность управлять ключом, список должен стать Map<String, AddGroupUser>. Затем вы можете установить ключ каждого AddGroupUser, который вы положили на карту.

room.members.put(id, addGroupUser);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...