Я пытаюсь достичь следующей функции:
Я хочу отправить 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)
});