В настоящее время нет способа генерировать действительное значение oobCode
через API аутентификации Firebase. Его можно отправить только в (как вы сказали «непереводимое») сообщение электронной почты.
Но вы можете создать свой собственный механизм проверки электронной почты, если хотите, используя свой собственный код подтверждения, чтобы подтвердить право собственности на электронную почту. Вы бы:
- Создание случайных, неопределяемые код на сервере
- Отправить его на адрес электронной почты пользователя, а затем
- Когда пользователь нажимает на ссылку для подтверждения, имеет свою собственную конечную точку на том же на котором вы звоните в
- На этом этапе вы можете использовать SDK Firebase Admin, чтобы установить свойство
emailVerified
на true
.
В качестве примера последнего шага, см: https://firebase.google.com/docs/auth/admin/manage-users#update_a_user
Благодаря @Nikhil в комментариях: В качестве альтернативы вы можете свернуть свои собственные проверки в целом и использовать Admin SDK для установки emailVerified
истины. См. Пример Firebase documentation.
поэтому мы не можем использовать метод updateUser admin, если мы выполняем метод sendVerificationEmail() на клиенте? Для метода updateUser нужен uid, и в настоящее время нет способа отправить uid пользователя в шаблон электронной почты правильно? – Nikhil
Ухм ... да, хорошая точка. Я забыл, что Admin SDK теперь обновляет профили пользователей. В качестве альтернативы вы действительно можете полностью опробовать свою собственную проверку и просто использовать SDK администратора, чтобы установить для параметра «emailVerified» значение true. Для примера см. Документацию [Firebase documentation] (https://firebase.google.com/docs/auth/admin/manage-users#update_a_user). –
спасибо! Глупый вопрос: getUser() или updateUser() обновляет объект UserRecord, мне все равно нужно будет обновлять поля в базе данных для пользователя в моем/users/uid месте. Верный? – Nikhil