iOS: связь между аутентификацией firestore и базой данных

#swift #firebase #google-cloud-firestore #relationship

#swift #firebase #google-облако-firestore #связь

Вопрос:

Я работаю с базой данных Firestore. В моем приложении нет опции singup для пользователей. Итак, мне нужно добавить пользователя из консоли Firestore. У меня следующая проблема с взаимосвязью документов и аутентификации:

  1. Я создал пользователя в разделе аутентификации с электронной почтой / паролем.
  2. Я добавил три записи в «Таблицу» и две записи с повторяющимся идентификатором электронной почты.
  3. Я вхожу в систему с аутентификацией пользователя и извлекаю все записи из «Таблицы».

Теперь у меня есть две записи с одинаковым идентификатором электронной почты. Итак, как распознать, какие записи связаны с аутентифицированным пользователем.

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

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:

Насколько я понимаю ваш вопрос, вы можете сделать несколько вещей:

  1. Вы можете войти в систему анонимно, используя:

     Auth.auth().signInAnonymously() { (authResult, error) in
       // enter code here
    } 
      

Выполните вышеуказанное в первый раз и сохраните UID по умолчанию для пользователя.
Здесь вы получите идентификатор пользователя из authResult.
Также здесь вам не нужен идентификатор электронной почты или пароль.

или:

  1. Создайте узел с DeviceID, чтобы вы могли получать данные для этого конкретного устройства.

Надеюсь, это поможет.