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.

El condensador de notificación push y FCM generan diferentes tokens, lo cual causa errores en Android.

Aplicación Ionic 5 con notificación push de Capacitor y plugins FCM.

import { FCM } from '@capacitor-community/fcm';

import {
  ActionPerformed,
  PushNotificationSchema,
  PushNotifications,
  Token,
} from '@capacitor/push-notifications';

¿Por qué generan tokens diferentes los dos?

Para Capacitor/PushNotifications, lo siguiente genera un token

PushNotifications.addListener('registration',
        async (token: Token) => {
          console.log('token: ' + token.value);
        }
      ).catch(e=>{alert('reqPerm'+e)});

Mientras que para FCM, lo siguiente genera un token diferente

FCM.getToken()
      .then(async (r) => {
         console.log(`token saved ${r.token}`)
        })
      .catch((err) => console.warn('error saving token', err));

El token de FCM funciona en iOS (el iPhone recibe notificaciones), pero al registrarlo en Android, dice algo sobre un token no válido registrado. Así que tuve que usar el token de PushNotifications.addListener para Android, pero cuando recibe una notificación, la aplicación se bloquea.

Me aseguré de que el archivo google-services.json esté en la carpeta android/apps.

¿Qué está pasando? ¿Algún consejo?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La razón por la cual ambos plugins generan tokens diferentes es que están utilizando mecanismos distintos para generar los tokens. Capacitor/PushNotifications utiliza el servicio nativo de notificaciones push del dispositivo, mientras que FCM utiliza el servicio de mensajería en la nube de Firebase.

    La razón por la cual el token de FCM no funciona en Android podría ser debido a un problema de configuración o de incompatibilidad entre los ajustes de la aplicación y los ajustes del proyecto de Firebase. Se recomienda verificar el nombre del paquete, la huella SHA-1 y la clave de API en la consola de Firebase y asegurarse de que coincidan con los ajustes de la aplicación.

    En cuanto a la aplicación que se bloquea al recibir una notificación, podría deberse a diversas razones, como un manejo incorrecto de los datos de la notificación o una excepción no controlada en el código de la aplicación. Se recomienda revisar los registros de la aplicación y depurar el código para identificar la causa raíz del bloqueo.

Comments are closed.