FireBase Cloud Messaging Not Working

11,549

Try sending message using service api call. It will provide you the response code and response json which may help you to get the reason for not working FCM.

Service call usage answered here- Firebase onMessageReceived not called when app in background

Share:
11,549
Yash Jain
Author by

Yash Jain

Updated on June 08, 2022

Comments

  • Yash Jain
    Yash Jain almost 2 years

    I am trying to use FireBase Cloud Messaging. I am receiving a token but its not getting any notifications from console. Here is my Manifest:

      <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="careerage.jobseeker.app"
    android:hardwareAccelerated="true"
    android:versionCode="1"
    android:versionName="0.0.1">
    
    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="23" />
    
    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true"
        android:xlargeScreens="true" />
    
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
    <android:uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <android:uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    
    <application
        android:hardwareAccelerated="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:supportsRtl="true">
        <activity
            android:name=".MainActivity"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
            android:label="@string/activity_name"
            android:launchMode="singleTop"
            android:theme="@android:style/Theme.DeviceDefault.NoActionBar"
            android:windowSoftInputMode="adjustResize">
            <intent-filter android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    
        <service
            android:name=".TokenService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
            </intent-filter>
        </service>
        <service
            android:name=".NotificationService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
        </service>
    </application>
    

    And My Code is almost the same as from the sample:

    public class NotificationService extends FirebaseMessagingService {
    
    private void sendNotification(String messagebody) {
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 , intent,
                PendingIntent.FLAG_ONE_SHOT);
    
        Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.icon)
                .setContentTitle("Notified")
                .setContentText(messagebody)
                .setAutoCancel(true)
                .setSound(defaultSoundUri)
                .setContentIntent(pendingIntent);
    
        NotificationManager notificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    
        notificationManager.notify(0 , notificationBuilder.build());
    }
    
    private void sendSnackbar(String messagebody)
    {
        Toast.makeText(this,"Notified",Toast.LENGTH_LONG).show();
    }
    
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Toast.makeText(this,"Message Received",Toast.LENGTH_LONG).show();
    
            Log.d("Notification Received",remoteMessage.getNotification().getBody());
    
            sendNotification(remoteMessage.getNotification().getBody());
        sendSnackbar(remoteMessage.getNotification().getBody());
    }
    
    }
    

    I checked the Question here Firebase cloud messaging notification not received by device but still it is not working.