I am developing a Cordova app where I need push notifications. For push notification, i used cordova-plugin-firebasex plugin . its works well when app is foreground but when app is background push notification display on the notification bar but when i click it deosn't shows title,body and additional data .Currently it shows following message:
collapse_key: "com.hadi.storex"
from: "383656394813"
google.delivered_priority: "normal"
google.message_id: "0:1620737447755747%7dc0077a7dc0077a"
google.original_priority: "normal"
google.sent_time: 1620737447734
google.ttl: 2419200
messageType: "notification"
tap: "background"
My js code is following :
-
function onDeviceReady() {
FirebasePlugin.getToken(function (fcmToken) {
console.log(fcmToken); }, function (error) {
console.error(error); }); FirebasePlugin.onTokenRefresh(function (fcmToken) {
console.log(fcmToken); }, function (error) {
console.error(error); }); FirebasePlugin.onMessageReceived(function (message) {
console.log("Message type: " + message.messageType);
if (message.messageType === "notification") {
console.log("Notification message received");
if (message.tap) {
console.log("Tapped in " + message.tap);
}
}
console.dir(message);
}, function (error) {
console.error(error);
}); }
document.addEventListener("deviceready", onDeviceReady, false);
My PHP code is following:
-
$path_to_fcm = "https://fcm.googleapis.com/fcm/send";
$headers = array(
'Authorization:key=' . FCM_SERVER_KEY,
'Content-Type:application/json');
$fields = array(
"to" => 'registration_ids',
'notification' => array(
'title' => "title of notification1122",
'body' => "your notification goes here22233",
"surveyID" => "ewtawgreg-gragrag-rgarhthgbad",
"data" => array(
'title' => "title of notification1122",
'body' => "your notification goes here22233",
"notification_body" => "Notification body",
"notification_title" => "Notification title",
"surveyID" => "ewtawgreg-gragrag-rgarhthgbad"
)
)
);
$payload = json_encode($fields);
$curl_session = curl_init();
curl_setopt($curl_session, CURLOPT_URL, $path_to_fcm);
curl_setopt($curl_session, CURLOPT_POST, true);
curl_setopt($curl_session, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl_session, enter code hereCURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_session, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_session, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($curl_session, CURLOPT_POSTFIELDS, $payload);
$curl_result = curl_exec($curl_session);
print_r($curl_result);
the correct way to send data on the fcm server is
$fields = array(