Регистрационный токен Firebase Cloud Messaging - Flutter и Django

Я пытаюсь отправлять push-уведомления (iOS, Android, Web) определенным пользователям, когда в моем приложении происходят определенные события.

Я использую плагин firebase_admin python с Django, он работает правильно для аутентификации и проверки jwt, но он выдает мне эту ошибку при попытке отправить сообщение/оповещение из Django:

firebase_admin.exceptions.InvalidArgumentError: The registration token is not a valid FCM registration token

Я получаю токен непосредственно из экземпляра Flutter и отправляю его в теле запроса от Flutter к Django.

Мой метод получения токена из Flutter:

await FirebaseMessaging.instance.getToken().then((token) async {
    fcm_token = token!;
  }).catchError((e) {
    print(e);
  });

Мой код на языке python, который отправляет уведомление:

registration_token = self.context['request'].data["token"],

        # See documentation on defining a message payload.
        message = Message(
            notification=Notification(
                title='New Product Added',
                body='A new product called ' + validated_data['name'] + ' has been added to your account.',
            ),
            token=str(registration_token)
        )

        # Send a message to the device corresponding to the provided
        # registration token.
        response = send(message)

Я проверил, что токен, передаваемый в Django, правильный, сравнив его с тем, что я получаю от Flutter

Проблема была в том, что registration_token был кортежем, сгенерированным Django, я просто проиндексировал первый элемент в кортеже и ошибка FCM исчезла.

Вернуться на верх