javascript - 使用云功能的推送通知无法运行

标签 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 来说相对较新,我们将非常感谢您的帮助。

最佳答案

当写入 '/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 编写代码。

关于javascript - 使用云功能的推送通知无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52076647/

相关文章:

javascript - 自适应边距,充分利用全宽 - iTunes 专辑网格样式

javascript - 取消以下 'then' 函数中的 $timeout 是否有效?

javascript - 获取更改文本的元素的 outerWidth

android - 是否有正确的方法将 Appcompat "NavigationView"用作永久性的(请参阅 Material Design 指南)

ios - 在Firebase iOS中链接oAuth提供程序

javascript - 如何使用WebRTC将视频流传输到RTMP?

java - 如何使用 PdfBox 缩放 pdf 文件

android - 如何批量安装软件到Samsung Galaxy Tab 10.1

ios - 使用 Firebase 的 Google 注销按钮

android - Firebase:查询以根据条件排除数据