【问题标题】:Push notification using cloud functions is not functioning使用云功能的推送通知不起作用
【发布时间】:2019-02-04 04:41:48
【问题描述】:

我正在编写一个云函数,所以当添加新名称时,会触发通知。

    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 比较陌生,非常感谢您的帮助。

【问题讨论】:

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


    【解决方案1】:

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

    看起来你想在数据写入/Vendor/{pushId时触发云函数,所以你应该将你的触发器声明为:

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

    这确实是非常基本的 Cloud Functions 内容,但我可以想象,如果您以前从未编写过 JavaScript,那么很难做到这一点。如果您是 JavaScript 新手,Cloud Functions for Firebase 并不是学习它的最简单方法。我建议先阅读Firebase documentation for Web developers 和/或阅读Firebase codelab for Web developer。它们涵盖了许多基本的 JavaScript、Web 和 Firebase 交互。您还可以在本地 Node.js 进程中使用 Admin SDK,该进程可以使用本地调试器进行调试。完成这些之后,您将能够更好地为 Cloud Functions 编写代码。

    【讨论】:

    • 这行得通。现在我明白我犯了什么错误,我一定会仔细阅读你分享的文件。
    猜你喜欢
    • 2020-09-13
    • 2021-04-19
    • 2019-12-18
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-01
    • 2021-01-02
    • 2021-03-08
    相关资源
    最近更新 更多