android - Firebase Notification Push Notification not working

10,145

In my case, every thing was OK,but the app's notification channels was inactive. so make sure your notification channel is active in setting.

may help some one.

Share:
10,145
Chris Palma
Author by

Chris Palma

Updated on June 24, 2022

Comments

  • Chris Palma
    Chris Palma almost 2 years

    UPDATE

    Unfortunately, I didn't solve this issue and what I did is create a new project. Fortunately my new project works. One thing I noticed from my newly created project, when I am sending notification messages, some messages didn't arrive to my device. So I think its my Internet connection problem (my idea only).

    I am trying to implement basic receiving of Push Notifications using Firebase. I based this tutorial:

    https://www.codementor.io/android/tutorial/send-push-notifications-to-android-with-firebase

    My Problem is I don't receive any messages at all. I have sent more than 5 messages using the Firebase Console and still nothing happens.

    Here is my implementation of FirebaseInstanceIdService:

    public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService {
    
    public static final String debugTag = "MyFirebaseIIDService";
    
    @Override
    public void onTokenRefresh() {
        super.onTokenRefresh();
    
        //Getting registration token
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    
        //Displaying token in logcat
        Log.e(debugTag, "Refreshed token: " + refreshedToken);
    
    }
    
    private void sendRegistrationToServer(String token) {
        //You can implement this method to store the token on your server
        //Not required for current project
    }
    
    }
    

    My FirebaseMessagingService implementation:

    public class MyFirebaseMessagingService extends FirebaseMessagingService {
    
    public static final String debugTag = "MyFirebaseApp";
    
    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);
    
        Log.d(debugTag, "Notification Received!");
    
        //Calling method to generate notification
        sendNotification(remoteMessage.getNotification().getTitle(),remoteMessage.getNotification().getBody());
    
    }
    
    //This method is only generating push notification
    private void sendNotification(String title, 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.mipmap.ic_launcher)
                .setContentTitle(title)
                .setContentText(messageBody)
                .setAutoCancel(true)
                .setSound(defaultSoundUri)
                .setContentIntent(pendingIntent);
    
        NotificationManager notificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    
        notificationManager.notify(0, notificationBuilder.build());
    }
    
    }
    

    My Manifest file:

    <uses-permission android:name="android.permission.INTERNET" />
    
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".activities.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    
        <service
            android:name=".messagingservice.MyFirebaseMessagingService"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
    
        <service android:name=".tokenservice.MyFirebaseInstanceIdService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>
    
    </application>
    

    What am I doing wrong? Or what am I lacking to implement?

    I am really needing some help with this one. Any help will be greatly appreciated. Thank you very much!

  • user924
    user924 over 2 years
    what do you mean? how to check it if it's active or inactive?
  • Gg M
    Gg M over 2 years