2 回答
TA贡献1796条经验 获得超10个赞
要在云函数中创建文档,则需要使用 admin sdk,所以首先安装包:
npm install firebase-admin --save
初始化 admin sdk:
const admin = require('firebase-admin');
admin.initializeApp({
credential: admin.credential.applicationDefault()
});
const db = admin.firestore();
然后你可以添加:
const mailRef = db.collection('mail')
return mailRef.add({
email: email,
subject: 'Welcome'
});
https://googleapis.dev/nodejs/firestore/latest/CollectionReference.html#add
TA贡献1884条经验 获得超4个赞
我知道这有点晚了,以防万一有人发现自己有同样的问题。当您使用 set() 创建文档时,您必须为要创建的文档指定一个 ID。所以基本上上面的代码只需要稍微调整如下
exports.sendEmail = functions.firestore.document('/Users/{documentId}')
.onCreate((snap, context) => {
const username = snap.data().username;
const email = snap.data().email;
const uid = context.params.documentId //get the doc ID
const alternateUid = //you can generate a random ID here
console.log(username, email)
const mailRef = firestore.collection("mail").doc(uid)
return mailRef.set({
email: email,
subject: 'Welcome'
});
});
但有时文档没有有意义的 ID,或者您不想使用上述任何内容。然后让 Cloud Firestore 为您自动生成 ID 会更方便。您可以通过调用 add() 来做到这一点,例如
const mailRef = firestore.collection("mail")
return mailRef.add({
email: email,
subject: 'Welcome'
})
添加回答
举报
