Как отправить уведомление о событии, вызванном облачными функциями - PullRequest
0 голосов
/ 15 октября 2018

У меня проблемы с созданием функции, которая отправляет уведомление, когда в моей RealTimeDatabase происходит определенное событие.В настоящее время мне удалось извлечь эту функцию из Интернета, поскольку я почти ничего не знаю о JavaScript, я не знаю точно, что это делает ..

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

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

admin.initializeApp();


exports.sendNotification = functions.database.ref('/tareas/{userId}/{tareasId}').onWrite((change, context) => {

  // Grab the current value of what was written to the Realtime Database.
  var descripcion = change.after.ref.parent.child('descripcion'); 
   var lista = change.after.ref.parent.child('lista');
   const snapshot = change.after.val;

  // Get the current userId
  var userId = change.params.userId

  // Notification details.
  const payload = {
    notification: {
      title: 'Nuevo Plan',
      body: `${descripcion} tienes un plan que completar "${lista}".`,
      sound: 'default',
      //clickAction: 'fcm.ACTION.HELLO',
      // badge: '1'
    },
    data: {
      extra: 'extra_data',
    },
  };



// Set the message as high priority and have it expire after 24 hours.
  const options = {
    collapseKey: 'demo',
    contentAvailable: true,
    priority: 'high',
    timeToLive: 60 * 60 * 24,
  };

Может ли кто-нибудь указать мне правильное направление,что добавить?Я пытался реализовать это часами!

Я хочу, чтобы функция выдвигала уведомление, когда дата моего объекта Tareas совпадает с сегодняшней, и выполняет это только в том случае, если пользователь активировал настройку уведомления.(Это логическое значение, хранящееся в профиле.)

Вот скриншот моей базы данных: enter image description here

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 15 октября 2018

сначала вам нужен push-токен для пользователей или тема для отправки.В вашем случае я считаю, что тема - правильный выбор, потому что ваши пользователи могут подписаться на нее простым вызовом, например:

FirebaseMessaging.getInstance().subscribeToTopic("news")

Затем вы можете написать свою облачную функцию, возвращая сообщение от adminAPI, например:

return admin.messaging().sendToTopic("news", payload, options);

Ваш триггер базы данных в реальном времени выглядит почти правильно.Просто попробуйте :) 1007 *

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