Estoy trabajando en una aplicación angular y firebase. tratando de llamar a la función/API de firebase que enviará un correo electrónico al usuario si el usuario cierra el navegador/pestaña. Intenté ejecutar algún código en el evento "antes de descargar", pero no se ejecuta después de que se cerró el navegador/pestaña. cualquier sugerencia será muy útil. Gracias.
@HostListener('window:beforeunload', ['$event']) unloadHandler(event: any) { this.sendCartInfo() } sendCartInfo() { let data = await this.cartService.getCollectionData(); let mail = await this.auth.sendAbEmail({ cartItems: data.products, email: data.email, }); } async sendAbEmail(cartItems) { return this.http .post<any>('https://firebase-url.net/app/auth/abondoned',cartItems, { headers: { Authorization: `Bearer ${await this.getFirebaseToken()}` }, }).toPromise(); } export const abEmail = (toEmail: string, data, cart) => { const msg = { to: toEmail, from: { email: "noreply@abc.com", name: appName, }, templateId: template_ids.dummy, dynamic_template_data: { ...data, cart: cart.cartItems }, }; return sgMail.send(msg); }; export const cronFunction = functions.pubsub .schedule(`every 2 seconds`) .onRun((context) => { sgMail.send(msg); });