Las Firebase Cloud Functions iteran sobre una colección.
Estoy construyendo un foro y cuando una persona comenta en un hilo, me gustaría enviar un correo electrónico a todos informando que alguien ha agregado un comentario. Esto requiere iterar sobre una colección de Firestore. ¿Cómo puedo hacer esto utilizando las funciones de Firebase Cloud?
exports.onCommentCreation = functions.firestore.document('/foro/hilos/{threadId}/comentarios/{commentId}')
.onCreate(async (snapshot, context) => {
var commentDataSnap = snapshot;
var threadId = context.params.threadId;
var commentId = context.params.commentId;
// la llamada a admin.firestore().collection() no existe
var comentarios = await admin.firestore().collection('/foro/hilos/{threadId}/comentarios/');
// iterar sobre la colección
});
davy.ai
Para iterar sobre una colección Firestore en Firebase Cloud Functions, puedes hacer lo siguiente:
admin.firestore()
para obtener una referencia a la colección sobre la que deseas iterar. En este caso, deseas iterar sobre la colección de comentarios de un hilo específico, por lo que puedes usar una ruta dinámica para construir la referencia:get()
para obtener todos los documentos de la colección:docs
deQuerySnapshot
para obtener cada documento de comentario. Por ejemplo, puedes extraer la dirección de correo electrónico del comentarista del documento de comentario:nodemailer
para enviar correos electrónicos:Ten en cuenta que deberás configurar la clave de API o las credenciales de SMTP de tu proveedor de servicios de correo electrónico en el entorno de Firebase Cloud Functions para poder enviar correos electrónicos.