es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo escribir una función para un documento específico en Firestore?

A continuación se muestra la función que he utilizado de YouTube.

     const functions = require("firebase-functions");
     const admin = require("firebase-admin");

     admin.initializeApp();

     exports.androidPushNotification = 
     functions.firestore.document('MyMoneyNotifications/{MyPercentageMoney}').onCreate(

     (snapshot, context) => {
         admin.messaging().sendToTopic(
      "new_user_forums",
   {
     notification:{
         title:snapshot.data().title,
         body: snapshot.data().body
                   }
            });});

Funciona correctamente, pero quiero comprobar la siguiente estructura.

        Notifications(colección)
              ->UserId(documento)
                 ->MyNotification(colección)
                              ->notify1
                              ->notify2

Ahora, quiero comprobar si un usuario específico tiene alguna notificación nueva. ¿Cómo puedo verificar la colección “MyNotification” en las funciones de Firebase?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para verificar las notificaciones de un usuario específico en la colección “MyNotification” utilizando Firebase Functions, podemos modificar el código existente de la siguiente manera:

    const functions = require("firebase-functions");
    const admin = require("firebase-admin");
    
    admin.initializeApp();
    
    exports.androidPushNotification = functions.firestore
      .document("Notifications/{userId}/MyNotification/{notificationId}")
      .onCreate(async (snapshot, context) => {
        const userId = context.params.userId;
        // Verificar si el usuario tiene notificaciones nuevas
        const userRef = admin.firestore().collection("Notifications").doc(userId);
        const userSnapshot = await userRef.get();
        if (userSnapshot.exists) {
          const notificationsRef = userRef.collection("MyNotification");
          const notificationsSnapshot = await notificationsRef.get();
          if (!notificationsSnapshot.empty) {
            // El usuario tiene notificaciones nuevas, enviar notificación push
            admin.messaging().sendToTopic("new_user_forums", {
              notification: {
                title: snapshot.data().title,
                body: snapshot.data().body,
              },
            });
          }
        }
      });
    

    En este código actualizado, hemos cambiado la ruta de Firestore para escuchar nuevos documentos creados en la colección “MyNotification” para cada usuario en la colección “Notifications”. También hemos agregado código para verificar si el usuario tiene notificaciones nuevas y enviar una notificación push si las hay. Primero obtenemos el documento del usuario utilizando el “userId” de los parámetros del contexto, luego verificamos si la colección “MyNotification” no está vacía. Si hay notificaciones nuevas, enviamos la notificación push con los datos de notificación del documento recién creado.

Comments are closed.