Push-уведомление с использованием облачных функций не работает - PullRequest
0 голосов
/ 29 августа 2018

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

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

    exports.pushNotification = functions.database.ref('/name/{pushId}')
.onWrite(( change,context) => {

    console.log('Push notification event triggered');

    const payload = {
    notification: {
    title: 'App Name',
    body: "New Vendor added",
    sound: "default"
    },

    };
    const options = {
    priority: "high",
    timeToLive: 60 * 60 * 24 //24 hours
    };

    return admin.messaging().sendToDevice("notifications", payload, options);
    })

Нужно ли вносить какие-либо изменения в код или мне нужно вносить изменения в приложение для Android? Функция будет развернута без каких-либо ошибок. Но когда я добавляю в него данные, не регистрируются никакие облачные функции или не наблюдается никаких уведомлений. Относительно новичок в JS, помощь будет высоко оценена.

1 Ответ

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

Ваша облачная функция срабатывает при записи в '/name/{pushId}'. Но ваш JSON не показывает никакой клавиши name верхнего уровня, поэтому имеет смысл, что функция никогда не вызывается.

Похоже, что вы хотите запустить облачную функцию, когда данные записываются в /Vendor/{pushId, поэтому вы должны объявить свой триггер как:

exports.pushNotification = functions.database.ref('/Vendor/{pushId}')
  .onWrite(( change,context) => {
    ...

Это действительно довольно простые вещи, связанные с облачными функциями, но я могу себе представить, что трудно понять это правильно, если вы никогда раньше не писали JavaScript. Если вы новичок в JavaScript, облачные функции для Firebase - не самый простой способ изучить его. Я рекомендую сначала прочитать документацию Firebase для веб-разработчиков и / или взять кодовую метку Firebase для веб-разработчиков . Они охватывают многие основные взаимодействия JavaScript, Web и Firebase. Вы также можете использовать Admin SDK в локальном процессе Node.js, который можно отлаживать с помощью локального отладчика. После этого вы будете гораздо лучше подготовлены к написанию кода и для облачных функций.

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