2017-01-06 6 views
1

Firebase позволяет использовать только один язык для писем с подтверждением. Все красиво сделанные продукты бесполезны для многоязычных приложений. Я хочу создать свою собственную систему подтверждения. Вопрос только в том, как я могу получить этот oobCode, который создается внутри firebase. site.com?mode= & oobCode =Как получить oobCode для цели локализации

Спасибо.

ответ

3

В настоящее время нет способа генерировать действительное значение oobCode через API аутентификации Firebase. Его можно отправить только в (как вы сказали «непереводимое») сообщение электронной почты.

Но вы можете создать свой собственный механизм проверки электронной почты, если хотите, используя свой собственный код подтверждения, чтобы подтвердить право собственности на электронную почту. Вы бы:

  1. Создание случайных, неопределяемые код на сервере
  2. Отправить его на адрес электронной почты пользователя, а затем
  3. Когда пользователь нажимает на ссылку для подтверждения, имеет свою собственную конечную точку на том же на котором вы звоните в
  4. На этом этапе вы можете использовать SDK Firebase Admin, чтобы установить свойство emailVerified на true.

В качестве примера последнего шага, см: https://firebase.google.com/docs/auth/admin/manage-users#update_a_user

Благодаря @Nikhil в комментариях: В качестве альтернативы вы можете свернуть свои собственные проверки в целом и использовать Admin SDK для установки emailVerified истины. См. Пример Firebase documentation.

+0

поэтому мы не можем использовать метод updateUser admin, если мы выполняем метод sendVerificationEmail() на клиенте? Для метода updateUser нужен uid, и в настоящее время нет способа отправить uid пользователя в шаблон электронной почты правильно? – Nikhil

+0

Ухм ... да, хорошая точка. Я забыл, что Admin SDK теперь обновляет профили пользователей. В качестве альтернативы вы действительно можете полностью опробовать свою собственную проверку и просто использовать SDK администратора, чтобы установить для параметра «emailVerified» значение true. Для примера см. Документацию [Firebase documentation] (https://firebase.google.com/docs/auth/admin/manage-users#update_a_user). –

+0

спасибо! Глупый вопрос: getUser() или updateUser() обновляет объект UserRecord, мне все равно нужно будет обновлять поля в базе данных для пользователя в моем/users/uid месте. Верный? – Nikhil

Смежные вопросы