我无法从云功能发送欢迎电子邮件。每当在我的firestore中创建一个新用户时,用户"用户"用户/ userId.Here的路径是我的功能
exports.welcomeEmail = functions.firestore.document('Users/{userId}')
.onCreate((snap, context)=>{
const userId = context.params.userId;
const db = admin.firestore()
return db.collection('Users').doc(userId)
.get()
.then(doc => {
const user = doc.data()
const msg = {
to: user.email,
from: 'cybertronjc3@gmail.com',
subject: 'Welcome to COFOZ',
templateId: '1c455865-4529-4ae1-8e5a-9a5b8eaf0157',
substitutionsWrappers: ['{{', '}}'],
substitutions: {
name: user.name
}
};
return sgMail.send(msg)
})
.then(() => console.log('email sent!'))
.catch(err => console.log(err))
})
这是我得到的错误。
TypeError: Cannot read property 'userId' of undefined
at exports.welcomeEmail.functions.firestore.document.onCreate.event (/user_code/index.js:19:32)
at Object.<anonymous> (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:112:27)
at next (native)
at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71
at __awaiter (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12)
at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:82:36)
at /var/tmp/worker/worker.js:710:26
at process._tickDomainCallback (internal/process/next_tick.js:135:7)
答案 0 :(得分:2)
无需通过查看文档中的userid来获取新用户。只需从snap中获取新创建的文档。
def map_locations(tmask, irange, invalid_index=-1):
idx = np.where(tmask)[0]
sidx = np.searchsorted(idx, irange, 'right')-1
return np.where(sidx==-1,invalid_index, idx[sidx])
答案 1 :(得分:1)
您可能正在使用旧版本的Cloud Functions SDK。您可以在“{1}”文件的“依赖项”节点下查看您使用的版本吗?
使用您在代码中使用的语法,您应该拥有一个等于或高于1.0.0的版本。
有关详细信息,请参阅此文档(迁移指南):https://firebase.google.com/docs/functions/beta-v1-diff并检查package.json文件中的版本。
您将看到要更新到新SDK,您应该这样做:
package.json
npm install firebase-functions@latest --save