К сожалению, вы не можете проверить домен электронной почты до регистрации (исключая клиентскую часть).
Перед вами есть несколько вариантов, которые вы можете сделать:
- Вариант 1: Чтобы запретить доступ к базе данных и хранилищу, если домен пользователя не относится к вашим конкретным доменам:
Например:
"rules": {
".read": "auth.token.email.endsWith('@gmail.com')",
".write": "auth.token.email.endsWith('@gmail.com')"
}
}
или как это:
"rules": {
".read": "auth.token.email_verified == true && auth.token.email.matches(/.*@gmail.com$/)",
".write": "auth.token.email_verified == true && auth.token.email.matches(/.*@gmail.com$/)"
}
}
Кредиты: https://stackoverflow.com/a/38019847/2765346
- Опция 2: Чтобы добавить триггер аутентификации Firebase и прослушать новых пользователей.Затем вы можете проверить новых зарегистрированных пользователей и отключить их с недействительными доменами:
Например:
exports.validateUser = functions.auth.user().onCreate((user) => {
if (!user.email.matches(/.*@gmail.com$/)) {
admin.auth().updateUser(data, {
disabled: true
});
}
});
Кредиты: https://firebase.google.com/docs/functions/auth-events