Как вставить данные в firestore в массив строк?

# #android #firebase #android-studio #google-cloud-firestore

Вопрос:

Вот хочу я хочу сделать по коду и вставить в реальном времени

Я хочу взять имя пользователя отсюда и хочу добавить выше массив строкового имени пользователя_*

  • Создать коллекцию(«комната»)
  • Добавьте случайный номер в коллекцию «комната»
  • Имя пользователя GetCurrent ДОБАВИТЬ в массив пользователей в поле firestore
  • Продолжает проверять и обновлять в представлении переработчика, если новый пользователь найден в комнате -> Случайный код ->> В комнате (имя пользователя)

Я хочу обновить представление переработчика и показывать пользователям только в том случае, если код (случайный номер), сгенерированный в результате действия запуска (хоста), совпадает с действием объединения

Начать деятельность
Присоединяйтесь к мероприятию

Комментарии:

1. Можете ли вы объяснить, что вы пытаетесь сделать с дополнительными деталями? Я не понимаю, в какую комнату должен быть добавлен пользователь.

2. Комната-это коллекция в firestore, где я хочу хранить данные пользователя при условии, что если код, сгенерированный хостом (основная активность) и введенный игроком (совместная активность), совпадает, то я хочу получить всех пользователей этого конкретного кода и показать в представлении recycler. Для получения справочного изображения проверьте конец вопросов. [отредактировано: добавлены скриншоты]

Ответ №1:

Вы должны использовать комбинацию, установленную с Merge:true, для добавления идентификаторов в документ (создать, если он не создан), чтобы получить этот результат.

То, как вы управляете идентификатором документа, четко не определено, но я предполагаю, что у вас есть некоторая внутренняя логика, приведенная в качестве примера того, как вставить строку в массив.

 DocumentReference FirestoreRef = db.collection("room").document("myID");

Map<String, Object> map = new HashMap<>();
map.put("userList", FieldValue.arrayUnion("user_id"));
FirestoreRef.set(docRef, map, SetOptions.merge());
 

Комментарии:

1. Большое тебе спасибо, братан, все работает нормально в соответствии с моими требованиями, я не могу проголосовать за тебя, потому что (тебе нужно не менее 15 репутации, чтобы проголосовать, но твой отзыв был записан)

2. Еще одна логика, с которой я хочу разобраться, если в моей игре есть два человека с одинаковым именем…? Я думаю, что для этого я должен добавить UID вместо имени пользователя и из этого UID (в коллекции пользователей) Я должен получить данные и обновить представление переработчика!

3. правильно, uid-это глобальный идентификатор, который используется для определения одного пользователя от другого, если вам нужно заполнить пользовательские данные, рекомендуется извлечь их из какого-либо общедоступного профиля. Лично я предпочитаю мега-коллекцию имен/фотографий профилей, таким образом, я сокращаю количество читаемых пользователей