Если вы хотите получить данные документа, который запустил облачную функцию на checkout/{checkoutId}/products/{productId}
, вам не нужно делать
await db
.collection("checkout/{checkoutId}/products")
.doc(context.params.productId)
.get();
Как объяснено в doc :
Когда функция запускается, предоставляет снимок данных, связанных с событием . Вы можете использовать этот снимок для чтения или записи в документ, вызвавший событие, или использовать Firebase Admin SDK для доступа к другим частям вашей базы данных.
Вы можете легко получить значения документаполя через snap
DocumentSnapshot
следующим образом:
export const newOrder = functions.firestore
.document("checkout/{checkoutId}/products/{productId}")
.onCreate(async (snap, context) => {
const docData = snap.data();
const name = docData.name;
const amount = docData.amount;
// You can then use those values in the rest of your code
const msg = {
to: "wilmutsami@gmail.com",
from: "test@example.com",
templateId: TEMPLATE_ID,
dynamic_template_data: {
subject: "Hey there, thank you for your order!",
name: name,
amount: amount
}
};
return sgMail.send(msg);
});