Предоставленный регистрационный токен не зарегистрирован

#javascript #node.js #firebase #npm #push-notification

#iOS #objective-c #firebase #apple-push-уведомления #firebase-облако-обмен сообщениями

Вопрос:

Я пытаюсь отправить push-уведомление для iOS через облачные функции Google, но оно возвращает ошибку, которая The provided registration token is not registered . Но я проверил это, отлаживая свое приложение, и регистрационный токен FCM правильный. После этого я попытался отправить push-уведомление через консоль Firebase на одно устройство, предоставив токен FCM, но это не удалось из-за Unregistered registration token . Как это происходит, потому что нет проблем с токеном FCM устройства?

Комментарии:

1. Не могли бы вы добавить код для FCM

Ответ №1:

Я думаю, что это должна быть какая-то небрежная ошибка, вы должны убедиться, что приведенные ниже:

  1. Токен такой же с -[FIRMessagingDelegate messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken]

  2. Он GoogleService-Info.plist загружен с той же учетной записи, что и ваша push-консоль Firebase.

  3. Обновлено до последней версии Firebase SDK.

Из документа Google Firebase приведено некоторое описание вашей ошибки The provided registration token is not registered .

Предоставленный регистрационный токен не зарегистрирован. Ранее действительный регистрационный токен может быть не зарегистрирован по ряду причин, в том числе:

  • Клиентское приложение само не зарегистрировалось в FCM.
  • Клиентское приложение было автоматически незарегистрировано. Это может произойти, если пользователь удалит приложение или, в iOS, если Служба обратной связи APNS сообщила, что маркер APNS недействителен.
  • Срок действия регистрационного токена истек. Например, Google может решить обновить регистрационные токены или срок действия токена APNS для устройств iOS истек.
  • Клиентское приложение было обновлено, но новая версия не настроена для приема сообщений. Во всех этих случаях удалите этот регистрационный токен и прекратите использовать его для отправки сообщений.

Комментарии:

1. Да, проблема связана с токеном APNS.

2. Ох… Я думаю, что приложение было удалено и установлено снова. Должен проверить это. Спасибо

3. в чем была проблема с токеном APNS и как ее решить? У меня похожая проблема, но нет возможности решить

Ответ №2:

Я также получил аналогичную ошибку. Что-то вроде этого.

 FirebaseMessagingError: The provided registration token is not registered. A previously valid registration token can be unregistered for a variety of reasons. See the error documentation for more details. Remove this registration token and stop using it to send messages.
  

Поэтому я просто сгенерировал новый токен и заменил его старым.

И он начал работать нормально.

Ответ №3:

Я также получил аналогичную ошибку на выпущенном устройстве iOS сборки.

 The provided registration token is not registered. A previously valid registration token can be unregistered for a variety of reasons. See the error documentation for more details. Remove this registration token and stop using it to send messages.
  

Я исправил это, повторно загрузив правильный сертификат .p12 в обмен сообщениями firebase

Я получил письмо от службы поддержки firebase:

«В вашем случае, пожалуйста, обратите внимание, что вы можете загрузить только до 2 сертификатов APN. Один для разработки, а другой для производства. Поскольку один из сертификатов APN недействителен, вы должны удалить неправильный. Чтобы иметь возможность удалять сертификат APN, пользователь должен иметь разрешение / роль «владельца». После проверки у вас недостаточно прав для внесения этого изменения. Я предлагаю вам связаться с владельцем проекта, чтобы запросить необходимое разрешение или удалить сертификат APN.

Просто чтобы добавить, что с 2017 года разработчики могут использовать либо ключи аутентификации, либо сертификаты для своих APN. Мы рекомендуем вам использовать ключи авторизации, потому что их проще настроить и срок их действия не истекает. Если загружены как сертификат, так и ключ аутентификации, наш сервер будет использовать ключ аутентификации.

Наша система не может проверять ключи аутентификации, как это делают сертификаты. У нас нет способа подтвердить, что APNS примет их без отправки фактического сообщения. С помощью сертификатов мы открываем соединение с APNS перед их принятием, и если они недействительны, APNS отклоняют их, и мы можем вернуть ошибку пользователю «.

Ответ №4:

Я столкнулся с этой проблемой, и оказалось, что наш сервер отправлял неверную полезную нагрузку уведомления для определенного варианта использования. Когда это произойдет, Firebase отправит код возврата 400 и отменит регистрацию токена.

Исправление для нас состояло в том, чтобы исправить вариант использования, отправляющий неверную полезную нагрузку. Ошибка в нашей полезной нагрузке была вызвана «DeviceTokenNotForTopic». Обязательно убедитесь, что вы не получаете ошибок при отправке уведомлений до того, как перейдете в это плохое состояние.