Actualmente estoy trabajando en una aplicación web a la que un cliente puede acudir y solicitar un evento privado para una empresa de aparcacoches. Estoy tratando de configurar una función de activación para que pueda enviar un correo electrónico al propietario cada vez que alguien solicite un evento privado. Actualmente tengo este código configurado en mi archivo email.js
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); const db = admin.firestore(); exports.onQuoteAdded = functions.firestore.document('Manager/Quote/Quotes').onCreate( (snap, context) =>{ const values = snap.data(); //send email db.collection('login').add({ description: 'Email was sent'}); });Intento hacer firebase deployment --only funciones. Hago lo que dice implementado con éxito. Luego entro en mi Firestore, agrego un nuevo archivo en Cotizaciones y no pasa nada. Luego también verifico la página de funciones dentro de firebase y dice esperando en su primera implementación. ¿Alguien sabe qué podría hacer para averiguar dónde está el error?
La función de nube definida con functions.firestore.document('Manager/Quote/Quotes').onCreate() no se puede implementar correctamente porque está pasando una ruta incorrecta al método document() .
Debe pasar una ruta que apunte a un documento, es decir, la ruta debe contener un número par de elementos de ruta separados por barras, como:
functions.firestore.document('Manager/Quote').onCreate()
o
functions.firestore.document('Manager/{quoteId}').onCreate()
o, para una subcolección,
functions.firestore.document('Manager/{ManagerId}/subColl/{docId}').onCreate()
Lo más probable es que desee utilizar un comodín, como se muestra en la segunda opción anterior y como se detalla en la documentación .
También le sugiero que vea los 3 videos sobre "Promesas de JavaScript" de la serie de videos de Firebase que enfatizan la importancia de administrar correctamente el ciclo de vida de Cloud Functions, devolviendo una Promesa cuando todo el trabajo asíncrono esté completo.