#swift #firebase #google-cloud-firestore #relationship
#swift #firebase #google-облако-firestore #связь
Вопрос:
Я работаю с базой данных Firestore. В моем приложении нет опции singup для пользователей. Итак, мне нужно добавить пользователя из консоли Firestore. У меня следующая проблема с взаимосвязью документов и аутентификации:
- Я создал пользователя в разделе аутентификации с электронной почтой / паролем.
- Я добавил три записи в «Таблицу» и две записи с повторяющимся идентификатором электронной почты.
- Я вхожу в систему с аутентификацией пользователя и извлекаю все записи из «Таблицы».
Теперь у меня есть две записи с одинаковым идентификатором электронной почты. Итак, как распознать, какие записи связаны с аутентифицированным пользователем.
Комментарии:
1. Я бы посоветовал следующее: (вручную или программно) Создайте пользователя в режиме аутентификации, из этого вы получите уникальный UID. С помощью этого уникального uid создайте документ в своей коллекции пользователей. Когда пользователь входит в систему, вы можете легко получить информацию о пользователе, просто открыв соответствующий документ: db.collection («пользователи»). документ (<идентификатор пользователя>). Я не могу вдаваться в ваш подход, поскольку мне совершенно непонятно, почему и что вы добавляете в «Таблицу» и как вы получаете записи с тем же электронным письмом?
2. @Egghead Умм, я не хочу создавать пользователя из приложения. В этом проблема. Если я зарегистрируюсь из приложения, то все будет работать нормально, потому что я добавлю UID в документ при создании пользователя.
3. если вы вручную создаете пользователя на консоли. firebase.google.com вы все равно получаете UID, который вы можете использовать. Как вы в настоящее время создаете документы в firestore?
4. Вручную, нажав Добавить коллекцию, затем нажав добавить документ, а затем нажав добавить файлы.
5. Итак, вы можете добавить сгенерированный UID туда, верно? В качестве идентификатора документа: i.ibb.co/nRpqDBb/Screenshot-2019-04-23-at-15-00-41.png
Ответ №1:
Насколько я понимаю ваш вопрос, вы можете сделать несколько вещей:
-
Вы можете войти в систему анонимно, используя:
Auth.auth().signInAnonymously() { (authResult, error) in // enter code here }
Выполните вышеуказанное в первый раз и сохраните UID по умолчанию для пользователя.
Здесь вы получите идентификатор пользователя из authResult.
Также здесь вам не нужен идентификатор электронной почты или пароль.
или:
- Создайте узел с DeviceID, чтобы вы могли получать данные для этого конкретного устройства.
Надеюсь, это поможет.