Почему идентификатор сообщения из Firebase Cloud Messaging пуст

Я перехожу с устаревшего HTTP на v1 с помощью модуля NPM firebase-admin. Но у меня проблема в том, что при отправке уведомления он не выдает никаких ошибок, но он не возвращает идентификатор сообщения, и уведомление не получено на устройстве.

  • Версия узла: 12.14.1.
  • версия firebase-admin: 9.6.0

Код сервера:

const admin = require('firebase-admin');

var serviceAccount = require('./file.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount)
});

const messaging = admin.messaging();

async function sendPush() {
  const message2 = {
    notification: {
      title: 'test title',
      body: 'test'
    },
    token: 'valid-token'
  };

  try {
    const test = await messaging.send(message2);

    console.info('--------------------------Successfully sent message:--------------------------');
    console.info(test);
    console.info('------------------------------------------------------------------------------');
  } catch(err) {
    // Will catch both thrown exceptions as well as rejections
    console.info('--------------------------Error sending message:', err);
  }
}

Когда я отправляю уведомление с помощью функции sendPush, я получаю в консоли следующий ответ:

--------------------------Successfully sent message:--------------------------
projects/project-name/messages/
------------------------------------------------------------------------------

Он не содержит идентификатор сообщения, указанный в документации, и я не получаю уведомление.

Образец ответа Документов:

projects/myproject-b5ae1/messages/0:1500415314455276%31bd1c9631bd1c96

Редактировать:

Я протестировал функцию sendToDevice (Legacy API) из firebase-admin, и она работает.

messaging.sendToDevice('valid-token', message)
  .then(response => {
    console.info('--------------------------Successfully sent message:--------------------------');
    console.info(response);
    console.info('------------------------------------------------------------------------------');
  })
  .catch(err => {
    console.info('--------------------------Error sending message:', err);
  });

Толчок доставлен. Но send, sendMulticast и sendAll (v1 API) по-прежнему не работают.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
27
1

Ответы 1

Решено.

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

Другие вопросы по теме

Flutter - удаление документа в Firestore приводит к удалению случайного документа, а не выбранного
Свойство push не существует для типа Observable <any []> »
Firestore - получение сообщений для учетных записей, на которые подписан пользователь
Flutter Не удалось зарегистрировать ServiceWorker для области с помощью сценария, сценарий имеет неподдерживаемый тип MIME
Как установить Ghost CMS в подкаталог хостинга firebase
Правила Firestore позволяют только владельцу документа обновлять его, а другим пользователям - обновлять определенные поля
Функции Firebase не компилируют код. Он выдает код состояния 246 при неудачной компиляции
Проблема CORS - доступ к извлечению в *** из источника *** был заблокирован политикой CORS: No 'Access-Control-Allow-Origin' - запрос PUT в Firebase
Как я могу получить определенные пользовательские данные из firestore в React?
Как каждый день делать разные номера аутентификации без редактирования кода?