无法在Firebase Reail Time数据库中使用ongreate事件接收推送通知



我正在尝试实现下一个功能:当我在Firebase实时数据库中添加记录时,我想向设备发送推送通知。

我在Firebase上注册了设备,我已经通过Firebase Console发送了一个测试推送通知 - 我在设备上收到了推送通知。

但是,现在,当我部署下一个功能时,firebase并尝试在/user-chat路径下添加记录 - 我没有收到任何推动通知。为什么?如何调试/测试?

代码如下:

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) => {
          // 
      });
  });

更新:我已经使用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(我必须将服务帐户.json文件从src文件中移出,然后在脚本中更改脚本中的路径,例如父母文件夹(double dot dot ..(

2(我必须将REF路径更改为.ref('/user-chat/{anything}')

相关内容

  • 没有找到相关文章

最新更新