Javascript 如何在创建触发器时访问Firebase云函数数据库的值
我创建了一个函数,用于在onCreate启动后发送电子邮件,但遇到了问题 在尝试访问值之后Javascript 如何在创建触发器时访问Firebase云函数数据库的值,javascript,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Firebase,Firebase Realtime Database,Google Cloud Functions,我创建了一个函数,用于在onCreate启动后发送电子邮件,但遇到了问题 在尝试访问值之后 exports.sendEmailConfirmation = functions.database .ref('/contact') .onCreate(async (snapshot, context) => { const val = snapshot.val(); console.log(val); const mailOptions = { from: val.name,
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'
}
}
再次尝试使用spread,但遇到更多问题函数未启动
如何访问此功能?在
/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,
};
...
当在
/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,
};
...
在堆栈溢出时,请不要显示文本的图片。最好将文本复制到问题中,以便更容易阅读和搜索。发送到的
新un消息:undefined
似乎来自其他地方,因为您的代码只记录snapshot.val()
。在堆栈溢出时,请不要显示文本图片。最好将文本复制到问题中,以便更容易阅读和搜索。发送到的新un消息未定义似乎来自其他地方,因为您的代码只记录snapshot.val()
。