'Android 12 Exported True not showing notifications in the notification bar

I had to modify my app for Android 12. The app now runs and notifications come but only within the app itself, prior to this they would be in the notification bar. I fixed areas where it needed the android:exported="true" so it would launch on Android 12. But I'm not getting notifications in the notification bar. Could someone help me point out where I've not added the exported rule or if theres something else I need to do ?

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.spliceystudios.apps.esf"
    xmlns:tools="http://schemas.android.com/tools">

    <queries>
        <package android:name="com.google.android.apps.maps" />
    </queries>

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove"/> <!-- BroadcastReceiver permission to listen to the network -->
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
    <uses-permission android:name="android.permission.BLUETOOTH" /> <!-- Required OpenGL ES 2.0. for Maps V2 -->
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
    <uses-feature
        android:name="android.hardware.location"
        android:required="true" />
    <uses-feature
        android:name="android.hardware.location.gps"
        android:required="true" />
    <uses-feature
        android:name="android.hardware.camera"
        android:required="true" />

    <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:smallScreens="true" />

    <application
        android:name="com.spliceystudios.apps.esf.AppController"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:networkSecurityConfig="@xml/network_security_config"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="android:icon,android:theme,android:supportsRtl"
        >
        <activity
            android:name="com.spliceystudios.apps.esf.activities.ReportIssueActivity"
            android:label="@string/title_activity_report_issue"
            android:theme="@style/AppTheme.NoActionBar"></activity>

        <uses-library
            android:name="org.apache.http.legacy"
            android:required="false" /> <!-- Goolge Maps API Key -->
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="@string/map_api_key0" />
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="@string/ad_app_id" />

        <service android:name="com.spliceystudios.apps.esf.push_notification_firebase.FirebaseMessagingServiceIns"
            android:exported="true">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>
        <service android:name="com.spliceystudios.apps.esf.push_notification_firebase.FirebaseInstanceIDService"
            android:exported="true">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
            </intent-filter>
        </service>

        <activity
            android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:theme="@android:style/Theme.Translucent"

            />

        <receiver android:name="com.spliceystudios.apps.esf.dtmessenger.DCMBroadcastReceiver"
            android:exported="true">
            <intent-filter>
                <action
                    android:name="android.net.conn.CONNECTIVITY_CHANGE"
                    tools:ignore="BatteryLife" />
                <action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
            </intent-filter>
        </receiver>

        <activity
            android:name="com.spliceystudios.apps.esf.activities.IntroSliderActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.MessengerActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.ReviewsActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.OffersListActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.ListUsersActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.InboxActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.wuadam.awesomewebview.AwesomeWebViewActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:hardwareAccelerated="true"
            android:theme="@style/FinestWebViewTheme.Light" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.MainActivity"
            android:configChanges="uiMode"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.MapDirectionActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.MapStoresListActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.AboutActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.ProfileActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.CategoriesActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.ListStoresActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.EventsListActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.StoresListActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.PeopleListActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.CustomSearchActivity"
            android:screenOrientation="portrait" />
        <activity
            android:exported="true"
            android:name="com.spliceystudios.apps.esf.activities.SplashActivity"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.spliceystudios.apps.esf.activities.SettingActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.SliderActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.GalleryActivity"
            android:screenOrientation="portrait" />
        <activity
            android:exported="true"
            android:name="com.spliceystudios.apps.esf.activities.OfferDetailActivity"
            android:screenOrientation="portrait">
            <intent-filter android:label="@string/_DP_OFFER_MESSAGE">
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->

                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_OFFER"
                    android:scheme="nsapp" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_OFFER"
                    android:scheme="http" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_OFFER"
                    android:scheme="https" />

                <!-- WITH INDEX -->
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_OFFER_INDEX"
                    android:scheme="nsapp" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_OFFER_INDEX"
                    android:scheme="http" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_OFFER_INDEX"
                    android:scheme="https" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.spliceystudios.apps.esf.activities.StoreDetailActivity"
            android:screenOrientation="portrait"
            android:exported="true">
            <intent-filter android:label="@string/_DP_STORE_MESSAGE">
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->

                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_STORE"
                    android:scheme="nsapp" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_STORE"
                    android:scheme="http" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_STORE"
                    android:scheme="https" />

                <!-- WITH INDEX -->
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_STORE_INDEX"
                    android:scheme="nsapp" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_STORE_INDEX"
                    android:scheme="http" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_STORE_INDEX"
                    android:scheme="https" />

                <!-- note that the leading "/" is required for pathPrefix -->
            </intent-filter>
        </activity>
        <activity
            android:name="com.spliceystudios.apps.esf.activities.EventDetailActivity"
            android:screenOrientation="portrait"
            android:exported="true">
            <intent-filter android:label="@string/_DP_EVENT_MESSAGE">
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_EVENT"
                    android:scheme="nsapp" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_EVENT"
                    android:scheme="http" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_EVENT"
                    android:scheme="https" />
                <!-- note that the leading "/" is required for pathPrefix -->


                <!-- WITH INDEX -->
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_EVENT_INDEX"
                    android:scheme="nsapp" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_EVENT_INDEX"
                    android:scheme="http" />
                <data
                    android:host="@string/_DP_HOST_NAME"
                    android:pathPrefix="@string/DP_PATH_PREFIX_EVENT_INDEX"
                    android:scheme="https" />
            </intent-filter>
        </activity> <!-- Version 2.0 activities -->
        <activity
            android:name="com.spliceystudios.apps.esf.activities.V2MainActivity"
            android:configChanges="uiMode"
            android:label="@string/title_activity_v2_main"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.CustomSearchActivity$LoginActivityV2"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.CustomSearchActivity$ResultFilterActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.customView.AdvancedWebViewActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.customView.PaymentWebViewActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.booking.views.activities.ServiceOptionsActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.booking.views.activities.BookingCheckoutActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.booking.views.activities.BookingListActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.booking.views.activities.BookingDetailActivity"
            android:screenOrientation="portrait" />
        <activity
            android:name="com.spliceystudios.apps.esf.activities.FindMyPlaceActivity"
            android:screenOrientation="portrait" />
    </application>

</manifest>


Solution 1:[1]

In your FirebaseMessagingServiceIns / MESSAGING_EVENT section, change the exported value to false

    <service android:name="com.spliceystudios.apps.esf.push_notification_firebase.FirebaseMessagingServiceIns"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT" />
        </intent-filter>
    </service>

and it'll match the guidelines on the Firebase website https://firebase.google.com/docs/cloud-messaging/android/client

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Mike Irving