javascript - 如何在云功能中从firestore获取用户的电子邮件?

标签 javascript firebase google-cloud-functions google-cloud-firestore

这是发送欢迎电子邮件的 JavaScript:

const functions = require('firebase-functions');
const nodemailer = require('nodemailer');

const userID = firestore.auth().currentUser.getId();
exports.sendWelcomeEmail =
    functions.firestore.document('Users/{userID}').onCreate(async event => {
        const name = event.data.data().name;
        const email = event.data.data().email;



        return sendWelcomeEmail(email, name);
    })

function sendWelcomeEmail(email, name) {
    const mailOptions = {
        from: `${APP_NAME} <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1973787e7d706a71377a71766c7d71786b605970706d7e7737787a377077" rel="noreferrer noopener nofollow">[email protected]</a>>`,
        to: email,
    };


    mailOptions.subject = `Welcome to ${APP_NAME}!`;
    mailOptions.text = `Hey ${name || ''}! Welcome to ${APP_NAME}. I hope 
you will enjoy our service.`;
    return mailTransport.sendMail(mailOptions).then(() => {
        return console.log('New welcome email sent to:', email);
    });
}

我有 firestore 数据库,例如“用户”>“用户 ID”>“姓名”、“电子邮件”。

请帮我解决这个问题。

最佳答案

正如 @ArnavRao 所说,您应该像以前那样检索数据。它看起来正确,您不需要上面的这一行: const userID = firestore.auth().currentUser.getId(); 但如果您确实需要用户 Id:

...
const name = event.data.data().name;
const email = event.data.data().email;
const userId = event.params.userID;
...

将为您提供新记录的 ID。

关于javascript - 如何在云功能中从firestore获取用户的电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49472435/

相关文章:

firebase - 如何防止用户在 Firebase 中欺骗用户名?

android - Firebase-UI 库的 Proguard 配置

firebase - Firestore 权限缺失或不足

python - 如何按执行对云函数日志条目进行分组?

firebase - ApiError : Error during request while uploading file from Firebase Function

javascript - 使用构造函数创建一个新对象并在 javascript 中调用函数

javascript - 侧滑菜单选项卡

javascript - jQuery() 和 $() 未定义,但 jQuery 工作正常

javascript - 如何在 Javascript 的 console.log() 中插入介绍

firebase - 为什么身份验证不能在自己的域上工作,但可以在 firebase 的域上工作?