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'
})
添加回答
舉報