Как вы храните информацию о пользователях в firestore, если у них нет учетной записи? - PullRequest
0 голосов
/ 16 апреля 2019

Я пытаюсь создать приложение с использованием firebase auth и firestore, где новые пользователи могут быть приглашены по электронной почте для работы над проектом.Проблема в том, что я не знаю, как лучше всего хранить временные разрешения для пользовательских проектов до того, как у них будет UID.Я хочу, чтобы пользователь, получивший приглашение по электронной почте, получил доступ к проекту после открытия отправленной ему ссылки.

Я пробовал два разных способа

Наличие документа для подсборки для каждого пользователя впроект

/project/{projectId}/users/{userId}

При приглашении нового пользователя в качестве идентификатора пользователя был задан его адрес электронной почты с облачной функцией, которая запускалась при создании нового пользователя для отправки пользователю приглашения по электронной почте.После того, как пользователь открыл ссылку, он удалил свой пользовательский документ и запустил облачную функцию, которая создала новый документ с идентификатором пользователя, который был у них один раз с момента аутентификации.

Это сработало, но оставило 10 секундпериод, когда пользователь не может взаимодействовать с проектом, потому что запущена облачная функция для создания нового пользовательского документа.Кроме того, это просто казалось плохим способом сделать это.

Наличие одного документа со всей пользовательской информацией

/project/{projectId}/users/users

users:{
  roles: {
    users_id: 'admin',
    new_user_email: 'admin',
  }
}

Этот я не смог заставить работать как пожарный магазинне позволяет вам создать ключ с точкой в ​​нем, но если бы был способ обойти это, он бы тоже работал.Я также установил правила безопасности firestore, благодаря которым они могли редактировать поля, в которых был указан ключ uid, или их электронную почту, если они не были редактором / администратором.

1 Ответ

0 голосов
/ 16 апреля 2019

Попробуйте сначала создать анонимную учетную запись в Firebase Authentication, которая не требует ввода данных от пользователя.Он получит UID, который вы можете использовать для хранения данных этой учетной записи.Затем вы можете преобразовать эту учетную запись в обычную после успешной регистрации или входа.

Поскольку вы не сказали, какую мобильную платформу вы используете, я связал вас с Интернетом.документы, но процедура, как правило, одинакова для каждого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...