【发布时间】:2018-03-09 07:04:15
【问题描述】:
我正在编写一个如下的 firebase 函数。问题是当我添加新用户时它没有被触发。请告诉我我在哪里做错了。
我对以下功能的例外是,每当一个条目转到/user 文档时,一封电子邮件应该转到用户电子邮件。基本上它是一个注册页面,为了成功注册,我想发送电子邮件。
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
import * as sendgrid from '@sendgrid/mail';
admin.initializeApp(functions.config().firebase);
// const SENDGRID_API_KEY = functions.config().sendgrid.key;
const SENDGRID_API_KEY = 'SG.xxxxCfXA46A.6i-lhxxxxxxxxxxx0';
// const sendgrid = require('@sendgrid/mail');
sendgrid.setApiKey(SENDGRID_API_KEY);
exports.userCreateEmail = functions.database.ref('/users/{userId}').onCreate((event) => {
const userId = event.params.userId;
console.info('userId '+userId);
const db = admin.firestore();
return db.collection('users').doc(userId).get().then(doc => {
const user = doc.data();
console.log(user);
const msg = {
to: user.email,
from: 'asdf@gmail.com',
subject: 'new follower',
templateId: 'b98f5d37-8371-4c24-850c-sdfasdf'
};
return sendgrid.send(msg);
}).then(() => console.log('email sent!'))
.catch(err => console.log(err))
});
【问题讨论】:
-
请编辑您的问题以准确解释它应该做什么,以及您所做的更改期望它被调用。特别是,您显然在等待实时数据库中的更改,然后在 Firestore 中进行工作,这没有任何意义。
标签: firebase google-cloud-functions google-cloud-firestore