Попробуйте запустить функцию в облачной функции Firebase, как только сгенерируются данные облачной функции. На самом деле, я хочу запустить sendEmail
, вызванный добавлением данных коллекции events
. Но события происходят несколько раз, а не один раз.
Я использую mailgun
для отправки электронного письма.
exports.sendEmail = functions.firestore
.document("events/{eventId}")
.onCreate((snap, context) => {
const data = snap.data();
const { uid } = data;
usersRef.doc(uid).onSnapshot((user) => {
firestoreRef
.collection("followers")
.where("uid", "==", uid)
.get()
.then((snapshot) => {
snapshot.docs.map((snapshot) => {
const follower = snapshot.data();
mailgunClient.messages
.create("mg.xxxx.com", {
from: "Excited User <noreply@mg.xxxx.com>",
to: follower.email,
subject: Hello,
text: "test",
html: "<p>test</p>",
})
.then((msg) => console.log("msg", msg))
.catch((err) => console.log("error", err));
});
});
});
}
return true;
}