Устранение неисправностей генерации токена FCM
Ко гда в документе Firestore пользователя отсутствует подколлекция fcm_token, push-уведомления не могут быть доставлены на его устройство. Это руководство описывает возможные причины и решения для устранения отсутствующих подколлекций fcm_token в приложениях FlutterFlow.
Понимание проблемы
Push-уведомления требуют действительного токена Firebase Cloud Messaging (FCM), который генерируется при входе пользователя в систему или регистрации на физическом устройстве. Этот токен обычно хранится в подколлекции fcm_token документа пользователя в Firestore. Если эта подколлекция отсутствует, устройство не может получать push-уведомления.
Возможные причины отсутствия токенов включают:
- Сбои при генерации токена FCM.
- Неполные потоки аутентификации.
- Проблемы с разрешениями, препятствующие созданию токена.
- Недействительные входные данные, переданные в Cloud Functions.
Вот шаги для проверки соответствия пользователя для получения push-уведомлений:
-
Проверьте Firestore на наличие подколлекции
fcm_token- Откройте Firebase Console.
- Перейдите в Firestore Database.
- Найдите документ пользователя.
- Убедитесь, что подколлекция
fcm_tokenсуществует.
Если она присутствует, пользователь может получать push-уведомления.

Устранение неисправностей отсутствующей генерации токена FCM
-
Проверьте выполнение Cloud Function
Cloud Function
addFcmTokenотвечает за генерацию и хранение токенов FCM. Если генерация токена не удалась, просмотрите её логи:- Откройте Firebase Console.
- Перейдите в Functions.
- Найдите функцию
addFcmToken. - Откройте Logs, чтобы просмотреть ошибки или предупреждения.

-
Устранение ошибок разрешений
Для разрешения Cloud Function записи токенов FCM в Firestore требуются соответствующие разрешения.
Проверьте правила безопасности Firebase
- Убедитесь, что правила безопасности Firebase разрешают запись в коллекцию
usersи её подколлекции.
Проверьте разрешения учетной записи службы FlutterFlow
Учетная запись службы
firebase@flutterflow.ioдолжна иметь следующие роли:EditorCloud Functions AdminService Account User
Как назначить роли:
- Откройте Firebase Console.
- Перейдите в Project Settings > Users & Permissions.
- Найдите учетную запись службы
firebase@flutterflow.io. - Назначьте недостающие роли.
См. это руководство для получения полных инструкций.
- Убедитесь, что правила безопасности Firebase разрешают запись в коллекцию
-
Проверьте входные данные, переданные в Cloud Function
Если Cloud Function завершается сбоем с кодом состояния
400, она может получать недействительные входные данные.- Убедитесь, что поток аутентификации правильно извлекает идентификатор пользователя перед вызовом функции.
- Убедитесь, что идентификатор пользователя не является
null, пустым или поврежденным. - Реализуйте условную проверку перед вызовом функции.
- Добавьте логирование в код аутентификации и Cloud Functions для отслеживания сбоев.
Это особенно важно, если вы используете пользовательскую логику аутентификации. Если вы используете встроенную аутентификацию FlutterFlow, эта проблема маловероятна.
-
Проверьте ошибки сервера FCM
Дополнительные причины, по которым может не удаться генерация токена FCM, включают:
- Простой сервера FCM или временные сбои.
- Некорректные или поврежденные запросы, отправляемые из Cloud Function на сервер FCM.
- Недостаточные разрешения доступа к API.
- Недействительные или отсутствующие входные данные (например, токен устройства).
Если проблемы с сервером сохраняются, рассмотрите возможность обращения в службу поддержки Firebase за помощью.
Следуя этому полному процессу устранения неисправностей, вы можете обеспечить успешное получение push-уведомлений вашими пользователями.