使用云功能的推送通知无法正常运行

时间:2018-08-29 11:43:59

标签: javascript android firebase firebase-realtime-database google-cloud-functions

我正在编写云函数,因此当添加新名称时,将触发通知。

    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 :(得分:1)

在写入'/name/{pushId}'时触发您的Cloud Function。但是您的JSON没有显示任何顶级name键,因此从不调用该函数是有道理的。

在将数据写入/Vendor/{pushId时,您似乎想触发Cloud Function,因此应将触发声明为:

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

这确实是相当基本的Cloud Functions资料,但是我可以想象,如果您以前从未编写过JavaScript,那么很难做到正确。如果您不熟悉JavaScript,则Firebase Cloud Functions并不是学习它的最简单方法。我建议先阅读Firebase documentation for Web developers和/或参加Firebase codelab for Web developer。它们涵盖了许多基本的JavaScript,Web和Firebase交互。您还可以在本地Node.js进程中使用Admin SDK,可以使用本地调试器对其进行调试。在那之后,您也将更有能力为Cloud Functions编写代码。