Запретить пользователям создавать новые учетные записи? Я искал то же самое, не находя способа сделать это с любым параметром проекта Firebase.
Я полагаю, что решение заключается в том, чтобы рассмотреть разницу между аутентификацией и авторизацией . Служба аутентификации Firebase названа удачно. Он делает аутентификацию - подтверждает, что пользователь на самом деле является тем, кем он себя считает. Он не выполняет authorization - контролирует, какие действия разрешено выполнять аутентифицированным пользователям или к каким данным они могут получить доступ в приложении. Разработчики приложений должны нести ответственность за управление правами пользователя .
Один из способов сделать это - сохранить коллекцию «авторизованных пользователей», например, в Firestore. Когда пользователь аутентифицирует , ваше приложение выполнит поиск, чтобы увидеть, действительно ли текущий пользователь авторизован или нет. Правила безопасности могут быть написаны для Firestore и Firebase Cloud Storage, чтобы также проверить, что текущий пользователь находится в коллекции «авторизованных пользователей», прежде чем разрешить доступ к данным. Но это требует дополнительных запросов данных для получения этой информации авторизации.
Метод авторизации, который я предпочитаю, заключается в использовании пользовательских утверждений, которые можно назначить с помощью библиотеки администратора Firebase. Пользовательская заявка может быть добавлена к существующей учетной записи пользователя, которая может выступать в качестве флага, указывающего, какой тип авторизации им предоставлен. Код переднего плана может проверить выданный им токен аутентификации для пользовательского утверждения, чтобы определить предоставленную им авторизацию. Серверный код и правила безопасности также могут проверять наличие требуемых пользовательских утверждений в отправленных запросах.
Реально, любое приложение, которое вы создаете, где разные пользователи могут иметь разные уровни доступа, потребует от вас авторизации. Я считаю, что назначение тщательно продуманных пользовательских требований - лучшее решение.