Как отправить push-уведомление из проекта angular 6 в приложение для Android - PullRequest
0 голосов
/ 30 августа 2018

У меня есть приложение для Android, в котором я отправляю push-уведомления, используя Firebase Admin SDK с nodejs.

Мне удалось отправить уведомление из необработанного сценария nodejs, когда я запустил сценарий.

enter image description here

Однако я только что создал панель администратора для отправки уведомлений в приложение с angular 6, но не знаю, как интегрировать скрипт nodejs с новым приложением angular, чтобы я мог отправлять уведомления из приложения angular одним щелчком мыши. .

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

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Я наконец решил проблему, используя облачные функции Firebase .

  1. Сначала я настроил облачные функции на базе Firebase с помощью этого руководства
  2. Затем я создал облачную функцию с именем sendNotification (), которая запускается каждый раз, когда новые объекты вставляются в базу данных реального времени firebase.
  3. Затем я поместил свой существующий код уведомления в функцию sendNotification ()
  4. Развернул функцию на моей консоли Firebase
  5. Тогда ура, уведомление было отправлено на мое устройство после некоторых триггеров дБ

`

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

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


//This functions listens to the node '/Food menu/date/Food' for new insert and sends notification to a client
exports.sendNotification = functions.database.ref('/Food menu/date/Food')
.onCreate((snapshot, context) => {

  //place your client app registration token here, this is created when a user first opens the app and it is stored in the db. 
  //You could also retrieve the token from the db but in this case it is hard coded
  var registrationToken = "{my-registration-token}";

  //This is the payload for notification

  var payload = {
    data: {
      'title': 'Tomorrow\'s Menu',
      'message': 'Hello, kindly check the menu available for today',
      'is_background': 'true',
      'image': 'http://www.allwhitebackground.com/images/3/3430.jpg',
      'timestamp': '234'
    }
  };

  // Send a message to the device corresponding to the provided
  // registration token.
  admin.messaging().sendToDevice(registrationToken, payload)
    .then((response) => {
      // Response is a message ID string.
      console.log('Successfully sent message:', response);

      //return a promise here since this function is asynchronous
      return "Yes";
    })
    .catch((error) => {
      console.log('Error sending message:', error);
    });

  //return snapshot.ref.parent.child('uppercaseFood').set(uppercase);
});

`

После этого вы запускаете firebase deploy --only functions для развертывания облачной функции

Прочтите это руководство для получения дополнительной информации о облачных функциях

0 голосов
/ 31 августа 2018

Настройте свой узел для работы в качестве сервера API, используя, например, Express .

Оберните ваш скрипт как модуль Express (названный send-message.js), просто сделайте эту функцию экспортируемой:

const sendMessage = (...params) => {
   //your send message logic, I would do copy paste of your code here however it is an image
}

module.exports = sendMessage;

Ну а затем настройте маршрут API, который вызывает скрипт:

var express = require('express')
var sendMessage = require('./send-message')
var app = express()

app.get('/send-message', function (req, res) {
  sendMessage(....);
  res.status(200).end();
})

app.listen(3000)

И, наконец, в Angular используйте HttpClient для вызова API.

...