#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:
Я думаю, что это должна быть какая-то небрежная ошибка, вы должны убедиться, что приведенные ниже:
-
Токен такой же с
-[FIRMessagingDelegate messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken]
-
Он
GoogleService-Info.plist
загружен с той же учетной записи, что и ваша push-консоль Firebase. -
Обновлено до последней версии 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». Обязательно убедитесь, что вы не получаете ошибок при отправке уведомлений до того, как перейдете в это плохое состояние.