javascript - 如何访问 Firebase 云函数数据库 onCreate 触发器的值
问题描述
我在 onCreate 触发后创建了一个发送电子邮件的函数,但在尝试访问值后出现了问题
exports.sendEmailConfirmation = functions.database
.ref('/contact')
.onCreate(async (snapshot, context) => {
const val = snapshot.val();
console.log(val);
const mailOptions = {
from: val.name,
to: 'kris@gmail.com',
title: val.message,
};
try {
await mailTransport.sendMail(mailOptions);
console.log(`New ${val.message ? '' : 'un'} message sent to:`, val.email);
} catch (error) {
console.error('There was an error while sending the email:', error);
}
return null;
});
未定义
新的联合国消息发送到:未定义
然后尝试控制台似乎有一个想要引用但随机的密钥
{ '-LuFhQVjr-T7UFYioi-d':
{ email: 'Kris@gmail.com',
message: 'Hello cloud function',
name: 'Kris'
}
}
尝试再次使用传播,但有更多的问题功能没有触发
我如何访问这个?
解决方案
当在 /contact
. 在这种情况下,您希望在声明中包含新子节点路径的占位符:
exports.sendEmailConfirmation = functions.database
.ref('/contact/{pushid}')
.onCreate(async (snapshot, context) => {
const val = snapshot.val();
console.log(val);
const mailOptions = {
from: val.name,
to: 'rferfe@gmail.com',
title: val.message,
};
...
推荐阅读
- google-analytics - Google Analytics 过滤器“Ashburn”在视图中不起作用
- c# - 从列表中提取值并将其保存到 C# 中的现有 Excel 工作表中
- drools - 版本从 v7.20 更改为 v7.21 后,drools 中的无限递归
- spring - Spring MVC中@ResponseBody的用例是什么
- tensorflow - 使用 Google 的 DEEPLAB V3+ 获取图像分割中每个语义类的类别概率分数
- ibm-mq - 卸载 WebSphere MFT
- ios - 无法同时满足动画约束
- c# - 如何获取 UI 元素的屏幕位置?
- c# - Azure Web 作业在部署后无法运行
- python - 交换数据框列数据而不更改表的索引