Erreur dans remoteMessage.getNotification().getBody()
J'ai mis en place Firebase Messagerie en Nuage dans mon application et lors de l'utilisation du Firebase de la console de mon application sur Android et iOS reçoit mes notifications. Mais parce que je voulais notification push quotidien, j'ai créé une tâche cron pour faire que, de mon côté serveur. J'ai remarqué que chaque fois que je déclencheur de mon cron mon application se bloque
Dans mon iOS client il ne reçoit aucune notification.
Dans mon client android, il affiche une erreur:
java.lang.String com.google.firebase.messaging.RemoteMessage$Notification.getBody()' on a null object reference
Où il est dans mon FirebaseMessagingService
voici mon code
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Log.d(TAG, "From: " + remoteMessage.getFrom());
Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
sendNotification(remoteMessage.getNotification().getBody());
}
Et de mon côté serveur
function sendNotificationFCM($apiKey, $registrationIDs, $messageText,$id) {
$headers = array(
'Content-Type:application/json',
'Authorization:key=' . $apiKey
);
$message = array(
'registration_ids' => $registrationIDs,
'data' => array(
"message" => $messageText,
"id" => $id,
),
);
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => 'https://fcm.googleapis.com/fcm/send',
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode($message)
));
$response = curl_exec($ch);
curl_close($ch);
return $response;
}
Je me demande pourquoi suis-je en avoir un NPE et comment puis-je le résoudre?
Je n'ai pas
notification
objet, j'ai pensé data
est suffisant, car notification
est facultatif. Dois-je ajouter dans mon $message
? Que dois-je mettre dans notification
objet?oui objet de notification par défaut est facultatif. Mais sur votre onMessageReceived(), vous appelez remoteMessage.getNotification (), mais vous n'avez pas de notification objet à analyser.
il fonctionne maintenant, merci! 🙂
OriginalL'auteur natsumiyu | 2016-06-02
Vous devez vous connecter pour publier un commentaire.
Essayez d'ajouter un objet de notification sur votre $message. Le corps de votre requête POST doit être quelque chose comme:
Votre
remoteMessage.getNotification()
retournenull
parce que le corps de votre requête POST ne contient pas un objet de notification.Vérifier la Documentation pour les Options de Messagerie Avancées pour votre référence.
OriginalL'auteur mgcaguioa
OriginalL'auteur pruthwiraj.kadam
OriginalL'auteur MobileDevMaster