我正在编写一个云函数,因此当添加新名称时,会触发通知。
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/