messaging.send не является функцией - PullRequest
0 голосов
/ 19 апреля 2019

Я пытаюсь отправить уведомление на устройство Android, отправив его из веб-приложения.

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

что я делаю не так?

мой код:

   const messaging = firebase.messaging();

    var message = {
       data: {
         score: '850',
           time: '2:45'
          },
       token: registrationToken
   };


messaging.send(message)
   .then((response) => {
     // Response is a message ID string.
      console.log('Successfully sent message:', response);
   })
   .catch((error) => {
       console.log('Error sending message:', error);
   });

Ответы [ 2 ]

0 голосов
/ 19 апреля 2019

Вы пытаетесь использовать admin, как подразумевается в здесь , очевидно.Для этого убедитесь, что установлен firebase-admin, если нет, запустите npm install firebase-admin.

, а затем используйте как:

admin.messaging().send(message)
  .then((response) => {
    // Response is a message ID string.
    // Your logic here
  })
  .catch((error) => {
    console.log('Error:', error);
  });

0 голосов
/ 19 апреля 2019

Вы, похоже, используете Firebase Admin SDK, который имеет возможность отправлять сообщения FCM.

Admin SDK предоставляет своему пользователю полный административный доступ к вашему проекту Firebase, что означает, что этот код может отправлять любой видсообщения всем вашим пользователям, но он также может получить доступ к любым другим ресурсам (файлы, базы данных, учетные записи пользователей) в вашем проекте по желанию.По этой причине Admin SDK предназначен только для использования в доверенной среде, такой как сервер, которым вы управляете, ваш компьютер для разработки или облачные функции.Он явно не должен использоваться на веб-страницах.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...