我有一个安卓应用程序,希望人们(经过身份验证的用户)从消息框相互发送推送通知。我正在使用带有火力云函数的 node.js,我在日志上收到此错误:
类型错误: 无法读取未定义的属性"用户 ID" at exports.sendNotification.functions.database.ref.onWrite.event (/user_code/index.js:10:33) ...
消息已成功写入实时数据库,但通知未传递给接收方(用户)。
我阅读了很多文档和相同/类似的问题,所以我知道有很多与此相关的主题,但我无法解决问题。我使用 index.js 作为源代码,但根据我阅读的文档更改了一些部分,例如 onWrite 部分。
错误在以下代码中指示此行:const receiverId = context.params.userId;
关于参数的某些东西出错了。这是代码的一小部分(带有我的更改):
let functions = require('firebase-functions');
let admin = require('firebase-admin');
admin.initializeApp();
exports.sendNotification = functions.database.ref('/messages/{userId}/{messageId}').onWrite((change,context) => {
//get the userId of the person receiving the notification because we need to get their token
const receiverId = context.params.userId;
console.log("receiverId: ", receiverId);
//get the user id of the person who sent the message
const senderId = change.child('user_id').val();
console.log("senderId: ", senderId);
//get the message
const message = change.child('message').val();
console.log("message: ", message);
//get the message id. We'll be sending this in the payload
const messageId = context.params.messageId;
console.log("messageId: ", messageId);
...
获取节点的最新版本 请看这个: https://firebase.google.com/docs/functions/database-events#handle_event_data onWrite(event...) 和 onCreate(....) 这将帮助你