Как создать auth.uid для пользовательской аутентификации firebase

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

Я сохраняю чат в базе данных в реальном времени и сохраняю профили пользователей в firestore.

Как я могу создать auth.uid для правил безопасности для телефонных номеров моих пользователей, которые аутентифицированы с помощью частной службы OTP.

Пожалуйста, помогите мне, как я могу подойти к этому.

Похоже, вам стоит взглянуть на аутентификацию телефона Firebase: firebase.google.com/docs/auth/web/phone-auth. Обратите внимание, что с помощью Admin SDK вы можете установить значение uid пользователя, см. firebase.google.com/docs/auth/admin/manage-users#create_a_us‌ er

Renaud Tarnec 03.04.2021 14:10

@RenaudTarnec Я не хочу использовать аутентификацию телефона с помощью firebase. особенно signinwithphonenumber отправляет новое SMS-сообщение otp с recaptcha (мне не нравится поток пользовательского интерфейса), но я уже проверил номер телефона с помощью частной службы otp. могу ли я создать auth.uid для моего подтвержденного номера телефона от клиента. согласно вашему предложению, устанавливает значение uid с помощью admin sdk из безопасного клиента. это безопасный подход.

lifelonglearner 03.04.2021 15:02

"Могу ли я создать auth.uid для моего подтвержденного номера телефона из client.as, согласно вашему предложению, устанавливает значение uid с помощью admin sdk" => Да. Для этого вам нужно использовать внутренний сервер, который вы контролируете, или, проще говоря, облачную функцию. "от клиента безопасно ... это безопасный подход" => На самом деле, на этот вопрос сложно ответить. Все зависит от того, как клиенты (и какие клиты, например, Admin?) Вызывают облачную функцию из внешнего интерфейса.

Renaud Tarnec 03.04.2021 15:04

Возможно, вас заинтересует этот статья, который показывает, как создать модуль администратора для управления доступом и ролями пользователей Firebase. Мы не указываем идентификатор пользователя при его создании в облачной функции, но вам просто нужно следовать примеру, показанному в приведенной выше ссылке (мой первый комментарий) admin.auth().createUser({uid: 'some-uid', phoneNumber: '+11234567890'})

Renaud Tarnec 03.04.2021 15:08

@RenaudTarnec, поэтому мне нужно установить значение uid с помощью admin sdk из облачной функции. Я изучу его. Большое вам спасибо. Если я когда-нибудь столкнусь с какой-либо проблемой при создании uid. Могу я снова задать вопрос.

lifelonglearner 03.04.2021 15:10
Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
0
5
18
1

Ответы 1

Как прокомментировал Рено, вам нужно:

  1. Войдите пользователя в свой собственный сервер.
  2. Используйте информацию из этого входа в создать собственный токен с Firebase Admin SDK
  3. Передайте заказной токен клиенту.
  4. Войдите в систему в Firebase на клиенте с настраиваемым токеном.

На этом этапе информация из настраиваемого токена доступна в правилах безопасности для Firestore и Realtime Database.

Другие вопросы по теме