Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

firebaseMessaging.sendEachForMulticast: app/network-error

Abierto
#2,821 3 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
50/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
node.js, typescript
Área
backend

Línea de trabajo

Comienza con la llamada a firebaseMessaging.sendEachForMulticast mostrada en el issue y reproduce el app/network-error con firebase-admin 13.0.2 en modo de desarrollo. Compara su comportamiento con el método send que funciona e inspecciona la respuesta devuelta. Se considera completado cuando el envío multicast se realiza correctamente sin el error de protocolo HTTP/2, o cuando el fallo está documentado con una causa y una solución alternativa confirmadas.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

api: messaging
export async function pushNotification({
  identifiers,
  body,
  metadata,
  title,
  link,
}: PushMessage) {
  try {
    logger.debug(`Push Notification: ${JSON.stringify(identifiers)}`);

    const userPreIdentifiers = identifiers.users;
    const teamPreIdentifiers = identifiers.teams;

    const userIdentifiers: string[] = [];

    if (userPreIdentifiers === "allUsers") {
      const allUserIdentifiers = await getAllUsersIdentifiers();
      userIdentifiers.push(...allUserIdentifiers);
    } else {
      const userTokens = await getUserIdentifiers({
        userRefs: userPreIdentifiers || [],
      });
      userIdentifiers.push(...(userTokens || []));
    }

    const teamIdentifiers = await getTeamIdentifiers({
      teamRefs: teamPreIdentifiers || [],
    });

    const tokens = [...(userIdentifiers || []), ...(teamIdentifiers || [])];
    logger.debug("All tokens:", tokens);
    if (tokens.length === 0) {
      logger.debug("No tokens found for push notification");
      return;
    }

    const message: MulticastMessage = {
      tokens,
      notification: {
        title,
        body,
      },
      data: metadata as { [key: string]: string },
      ...(link && {
        webpush: {
          fcmOptions: {
            link,
          },
        },
      }),
    };
    const response =
      await firebaseConfig.firebaseMessaging.sendEachForMulticast(message);

    logger.debug(
      `Successfully sent push notification: ${JSON.stringify(response)}`
    );
  } catch (error) {
    logger.error("Error sending push notification:", error);
  }
}
{"responses":[{"success":false,"error":{"code":"app/network-error","message":"Error while making request: Stream closed with error code NGHTTP2_PROTOCOL_ERROR. Error code: ERR_HTTP2_STREAM_ERROR"}}],"successCount":0,"failureCount":1}

I am using the "firebase-admin": "^13.0.2", sdk. The sendEachForMulticast not working on my development mode (did not try yet in production). However, if I am using the send method it will successfully push the notification.

Lenguaje dominante
TypeScript
Estrellas
1.7k
Forks
419
Merge medio
4 d 20 h
PR fusionados (30 d)
16

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de firebase/firebase-admin-node

Todos los issues de firebase/firebase-admin-node

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.