Невозможно получить push-уведомление с использованием события onCreate в базе данных Reail Time Firebase - PullRequest
0 голосов
/ 26 июня 2019

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

Я зарегистрировал свое устройство на firebase, я отправил тестовое Push-уведомление через консоль Firebase - я получил Push-уведомление на моем устройстве.

Но теперь, когда я развернул следующую функцию в firebase и попытался добавить запись в /user-chat path - я не получил никакого push-уведомления. Зачем? Как отладить / проверить это?

Код ниже:

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';

admin.initializeApp(functions.config().firebase);

exports.sendPushNotification = functions.database
  .ref('/user-chat')
  .onCreate((event: any) => {

    const payload = {
        notification: {
            title: 'Title',
            body: 'come check it',
            badge: '0',
            sound: 'default',
        }
    };

    const token = 'myTestedVerifiedToken';

    return admin
      .messaging()
      .sendToDevice(token, payload)
      .then((response: any) => {
          // 
      });
  });

UPDATE: Мне удалось отправить Push-уведомление непосредственно на мое устройство локально с помощью nodejs. Но теперь, когда я оборачиваю его в метод onCreate и пытаюсь развернуть его, используя команду firebase deploy, я получаю следующую ошибку:

Error: Error parsing triggers: Cannot find module './cargo-tender-firebase-adminsdk-8e307-c6b82762d2.json'

В чем проблема? Путь работает, когда я запускаю скрипт локально. Вот код:

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';

const serviceAccount = require('./cargo-tender-firebase-adminsdk-8e307-c6b82762d2.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://cargo-tender.firebaseio.com"
});

exports.sendPushNotification = functions.database
  .ref('/user-chat')
  .onCreate((event: any) => {

    const payload = {
        notification: {
        title: 'Title',
        body: 'come check it',
        badge: '0',
        sound: 'default',
        }
    };
    return admin
      .messaging()
      .sendToDevice('fcI1JGvOQnI:APA91bFql_J3Vx3TEfJgO6cwk6nmHBLtVrRk1J3AjD6f3nr5F5ZAI2yAy2Iiz4zBpkIXET2WurO8cjU0PY9lUbrPtNkej_oDCzozwIx1y_CwHxre1f3rFvIzr5K414oqBHdkamA2249e', payload)
  });

1 Ответ

0 голосов
/ 26 июня 2019

1) Мне пришлось переместить файл .json учетной записи службы из файла src и изменить путь к нему в скрипте, как к родительской папке (двойные точки ..)

2) Мне пришлось изменить путь ссылки на .ref('/user-chat/{anything}')

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