javascript - 使用 Firebase 云消息发送通知
问题描述
我正在尝试使用我部署到我的firebase函数的以下函数在我的应用程序中向他们发送好友请求时通过firebase云消息向用户发送通知
'use strict'
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotification = functions.database.ref('/Notifications/{user_id}/{notifications_id}').onWrite(event => {
const user_id = event.params.user_id;
const notifications = event.params.notifications;
console.log('This User Id is :', user_id);
});
但是当它尝试发送通知时,我的函数日志中出现以下错误
sendNotification
TypeError: Cannot read property 'user_id' of undefined
at exports.sendNotification.functions.database.ref.onWrite.event (/user_code/index.js:8:30)
at cloudFunctionNewSignature (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:105:23)
at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:135:20)
at /var/tmp/worker/worker.js:758:24
at process._tickDomainCallback (internal/process/next_tick.js:135:7)
解决方案
您必须添加上下文并从那里获取参数。尝试:
..'use strict'
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.sendNotification = functions.database
.ref('/Notifications/{user_id}/{notifications_id}')
.onWrite((event, context) => {
const user_id = context.params.user_id;
const notifications = context.params.notifications;
console.log('This User Id is :', user_id);
});
推荐阅读
- java - 为什么出现异常后,我必须在终端中执行 Ctrl-C 来解锁 Spring Boot 应用程序,才能继续处理其他请求
- javascript - 是否可以在 JS 或 TS 中单击按钮时更改浏览器选项卡?
- java - Java String 数组的替代方案以提高性能
- javascript - 如何使用 JavaScript 触发 Canvas 中按钮的单击事件?
- node.js - 从 NodeJS 中另一个 mongoDB 查询的结果中排除 mongoDB 查询中的值
- python - postgres SQL Python 熊猫
- angular - 使用 es5 中的扩展的 ng-bootstrap datepicker 自定义日期适配器
- excel - 为什么 INDIRECT() 不适用于具有工作表范围的动态命名范围?
- performance - BQ中的嵌套vs连接
- javascript - 如何在不每次都创建新会话的情况下一个接一个地执行appium测试脚本?