Сопоставление пользователей аутентификации Firebase с документами Firestore

я пытаюсь использовать Firebase ' s Firestore база данных для обработки Users в моем приложении для Android.

Первоначально я хочу использовать id вернулся из Auth пакет (строка) и установите это как идентификатор для users Collection в базе данных. При создании Document внутри Collection users, Я поставил uid поле для этой строки пакета auth.

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

// get Auth package uid string
db.collection("users").document(auth_uid_string);

будет работать.

поэтому альтернативой, я думаю, является использование Query.whereEqualTo("uid", auth_uid_string) что даст мне пользователя в списке, потому что firestore не предполагает, что запрос имеет уникальное значение.

я хочу избежать вышеуказанного решения и разработать способ хранения users приложения firestore, и использовать auth пакет, чтобы убедиться, что я получаю правильного пользователя. Возможно ли такое решение? Или я должен попробовать разные firebase service, или даже просто запустить сервер postgres в heroku или что-то еще?

1 ответов


Я не уверен, как это сделать в android, но с JS я делаю следующее:

firebase.firestore().collection('users').doc(currentUser.uid).set(currentUser)

currentUser - это объект пользователя, который возвращает функция аутентификации (я использую signInWithCredential) Он работает отлично. Я уверен, что вы можете реализовать аналогичный подход в android.