I'm trying to create a push notification using PHP. I have created my firebase account and add what's needs to be add in my android app. I tested it by using the firebase console and it receives the notification.
Now I'm trying to create a push notification using PHP below is my code
 $apiKey = "apikey"; //Server Key Legacy
 $fcmUrl = 'https://fcm.googleapis.com/fcm/send';
 $token= 'singletoken';
 $notification = array('title' =>'test title',
                       'body' => 'hello message');
 $notifdata = array('title' =>'test title data',
                     'body' => 'hello',
                     'image' => 'path'
              );
 $fcmNotification = array (
                        'to'        => $token, 
                        'notification' => $notification,
                        'data' => $notifdata 
                    );
                $headers = array( 'Authorization: key='.$apiKey, 'Content-Type: application/json');
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL,$fcmUrl);
                curl_setopt($ch, CURLOPT_POST, true);
                curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fcmNotification));
                $result = curl_exec($ch);
                curl_close($ch);
In my Login Activity, I use below code to get my register id
 FirebaseInstanceId.getInstance().getInstanceId().addOnSuccessListener( this,  new OnSuccessListener<InstanceIdResult>() {
        @Override
        public void onSuccess(InstanceIdResult instanceIdResult) {
            device_key = instanceIdResult.getToken();
            Log.e(TAG, device_key);
        }
    });
And here is my MyFirebaseMessagingService class 
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onNewToken(String s) {
    super.onNewToken(s);
}
@Override
public void onMessageReceived(RemoteMessage message) {
    super.onMessageReceived(message);
    sendMyNotification(message.getNotification().getBody());
}
private void sendMyNotification(String message) {
    Intent intent = new Intent(this, NotificationActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
    String channelId = "Default";
    Uri soundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder builder = new  NotificationCompat.Builder(this, channelId)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentTitle("My App")
            .setContentText(message)
            .setAutoCancel(true)
            .setSound(soundUri)
            .setContentIntent(pendingIntent);
    NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        NotificationChannel channel = new NotificationChannel(channelId, "Default channel", NotificationManager.IMPORTANCE_DEFAULT);
        manager.createNotificationChannel(channel);
    }
    manager.notify(0, builder.build());
}
}
I'm receiving notifications on my Android Emulator but in the real device I don't receive any notification.
 
     
    