【发布时间】:2020-01-09 02:31:05
【问题描述】:
我想使用 firestore 和云功能将用户的状态字段更新为值 (true) 时向用户发送电子邮件。
我的情况: 我有一个用户(集合),其中包含更多用户 ID(文档)文档,每个文档都包含字段和值。 其中一个字段是 status: true | false(布尔值)。
如果该用户的状态使用云功能和 sendgrid api 更改为 true,我想向该用户发送电子邮件。
users
- dOpjjsjssdsk2121j131
- id : dOpjjsjssdsk2121j131
- status : false
- pspjjsjssdsdsk2121j131
- id : pspjjsjssdsdsk2121j131
- status : false
- yspjjsjssdsdsk2121j131
- id : yspjjsjssdsdsk2121j131
- status : false
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const SENDGRID_API_KEY = functions.config().sendgrid.key;
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(SENDGRID_API_KEY);
exports.sendEmail = functions.firestore.document('users/{userId}')
.onUpdate((change, context) => {
const after = change.after.val();
if(after.status === 'VERIFIED'){
console.log('profile verified')
const db = admin.firestore();
return db.collection('users').doc(userId)
.get()
.then(doc => {
const user = doc.data();
const msg = {
to: 'email',
from: 'email',
templateId: 'template id',
dynamic_template_data: {
subject: 'Profile verified',
name: 'name',
},
};
return sgMail.send(msg)
})
.then(() => console.log('email sent!') )
.catch(err => console.log(err) )
}
});
【问题讨论】:
-
您能否提供有关您的代码到底是什么不工作的信息
标签: android google-cloud-firestore google-cloud-functions