У меня есть проект Firebase с включенным Cloud Messaging.Я использую nodejs SDK со служебной учетной записью для вызова admin.initializeApp()
, и до сих пор я могу подключиться к настольному Chrome, android Chrome и к примеру приложения для Android, как показано в firebase / quickstart-android .
Однако я не могу получить встроенное в iOS приложение iOS (работающее на testflight) из nodejs SDK.Он зарегистрирован в консоли Firebase. Приложение iOS отправляет свой токен уведомления / регистрации на мой серверный узел nodejs, но когда я пытаюсь взаимодействовать с указанным токеном, я получаю
{
"code": "messaging/registration-token-not-registered",
"message": "Requested entity was not found."
}
Приложение iOS получаетсообщения, встроенные в консоль Firebase , так что я предполагаю, что это означает, что конфигурация в порядке.
Единственное объяснение, которое мне приходит в голову, это то, что я должен использовать APNS в моем узле sdk, но в документации сказано, что это необходимо только при создании запросов HTTP v1 вручную, и что Node SDK должен обрабатывать аутентификацию внутренне.
Если я вручную создаю HTTP-запрос с использованием токенов рабочего стола, PWA, Android и iOS
curl -X POST \
https://fcm.googleapis.com/fcm/send \
-H 'Authorization: key=AAAAxxxxfc:ASDFG' \
-H 'Content-Type: application/json' \
-d '{
"registration_ids": [
"crC4-mcUgl0:APA91b...", //<Chrome Desktop Token>"
"dxye8zL0Ke4:APA91b...", //<Android Token>",
"cgEuQzw7tzk:APA91b...", //<PWA Token>",
"eIzMUZYYzEM:APA91b..." //<iOS Token>
],
"notification": {
"title": "Testing notification",
"body": "Hey, does this message work?"
}
}'
Я получаю три результата успеха и ошибку для iOS, говорящую «NotRegistered».
- Итак ... это потому, что в запросе отсутствует сертификат APNS?
- Это потому, что приложение iOS работает на testflight?
- Должно ли приложение iOS выполнить дополнительный запрос или предоставить дополнительное разрешение в своем коде?
- Должна ли учетная запись службы иметь специальное разрешение для приложений iOS?