# #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-это глобальный идентификатор, который используется для определения одного пользователя от другого, если вам нужно заполнить пользовательские данные, рекомендуется извлечь их из какого-либо общедоступного профиля. Лично я предпочитаю мега-коллекцию имен/фотографий профилей, таким образом, я сокращаю количество читаемых пользователей