FlutterFlow: Создание пользователей администратором

Это руководство описывает процесс реализации функции создания учетных записей пользователей непосредственно администратором приложения, минуя стандартный процесс самостоятельной регистрации.

Abstract

В корпоративных приложениях или закрытых системах часто требуется, чтобы администратор сам добавлял пользователей. Стандартный механизм аутентификации FlutterFlow (Sign Up) автоматически авторизует созданного пользователя, что мешает администратору создавать несколько аккаунтов подряд. Решение заключается в использовании Cloud Functions и Firebase Admin SDK, которые позволяют создавать записи в Firebase Auth и документы в Firestore без смены текущего сеанса администратора.

Timeline

Key Concepts

  • Admin Auth Flow: Процесс, при котором привилегированный пользователь создает других пользователей через серверную среду.
  • Cloud Functions (admin.auth()): Единственный безопасный способ создать пользователя в Firebase Auth без автоматического входа под его данными на клиенте.
  • Firestore Sync: Автоматическое создание профиля пользователя в базе данных сразу после генерации его UID в системе аутентификации.
  • Form Validation: Предотвращение ошибок ввода (особенно паролей) на стороне администратора.

Practical Tips

  • Безопасность Cloud Function: Всегда проверяйте права вызывающего пользователя (admin) внутри самой функции, чтобы предотвратить несанкционированное создание аккаунтов.
  • Подтверждение пароля: Даже если администратор создает аккаунт, поле “Confirm Password” критически важно, так как администратор не знает пароль пользователя и не может его легко увидеть после создания.
  • Кастомизация: Вы можете расширить Cloud Function, добавляя дополнительные поля, такие как role, department или subscription_plan, сразу при создании.
  • Валидация Email: Используйте встроенную валидацию FlutterFlow для проверки формата почты перед отправкой запроса в облако.

Conclusion

Использование Cloud Functions для создания пользователей — это надежный и масштабируемый паттерн для административных панелей в FlutterFlow. Это позволяет поддерживать чистоту процесса аутентификации и гарантирует, что администратор остается в системе под своим аккаунтом, успешно добавляя новых членов команды или клиентов.