Es la primera vez que uso FCM.
Descargo una muestra de firebase / quickstart-android e instalo FCM Quickstart. Pero no puedo obtener ningún token del registro ni siquiera presionar el botón LOG TOKEN en la aplicación.
Luego intento enviar un mensaje con la consola de Firebase y configurarlo para apuntar al nombre del paquete de mi aplicación. Recibí mensajes entrantes.
Quiero saber si se puede usar FCM? GCM todo está bien.
Solución:
Porque no soy un desarrollador de Android, solo un desarrollador de backend. Entonces me toma algo de tiempo resolverlo. En mi opinión, hay algunos errores en la aplicación de muestra.
Código:
RegistrationIntentService.java
public class RegistrationIntentService extends IntentService {
private static final String TAG = "RegIntentService";
public RegistrationIntentService() {
super(TAG);
}
@Override
protected void onHandleIntent(Intent intent) {
String token = FirebaseInstanceId.getInstance().getToken();
Log.i(TAG, "FCM Registration Token: " + token);
}
}
MyFirebaseInstanceIDService.java
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
private static final String TAG = "MyFirebaseIIDService";
/**
* Called if InstanceID token is updated. This may occur if the security of
* the previous token had been compromised. Note that this is called when the InstanceID token
* is initially generated so this is where you would retrieve the token.
*/
// [START refresh_token]
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
// String refreshedToken = FirebaseInstanceId.getInstance().getToken();
// Log.d(TAG, "Refreshed token: " + refreshedToken);
//
// // TODO: Implement this method to send any registration to your app's servers.
// sendRegistrationToServer(refreshedToken);
//
Intent intent = new Intent(this, RegistrationIntentService.class);
startService(intent);
}
// [END refresh_token]
/**
* Persist token to third-party servers.
* <p>
* Modify this method to associate the user's FCM InstanceID token with any server-side account
* maintained by your application.
*
* @param token The new token.
*/
private void sendRegistrationToServer(String token) {
// Add custom implementation, as needed.
}
}
Agregue esto en MainActivity.java.
Intent intent = new Intent(this, RegistrationIntentService.class);
startService(intent);
Después de hacer lo anterior, obtienes el Token en Logcat. Pero finalmente, encuentro una forma conveniente de conseguirlo. Simplemente use el modo de depuración para instalar la aplicación de muestra y podrá obtener el token la primera vez que lo instale.
Pero no sé por qué no puede imprimir el registro cuando lo instalo. Quizás esté relacionado con el sistema móvil.
Y luego por qué no puedo obtener la notificación. FirebaseMessagingService.onMessageReceived no llamó a sendNotification