Firebase Notification Always shows blank icon

31,027

Solution 1

This is the default behaviour of FCM. When app is in background it will take white icon.

Use this tag and put it in your Manifest. For me this worked. Hope it works for you too. Ensure meta-data is inside application like the example mentioned in quickstart

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    tools:ignore="GoogleAppIndexingWarning">
    <!-- [START fcm_default_icon] -->
    <!-- Set custom default icon. This is used when no icon is set for incoming notification messages. -->
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_icon"
        android:resource="@drawable/ic_stat_ic_notification" />
    <!-- Set color used with incoming notification messages. This is used when no color is set for the incoming
         notification message. -->
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_color"
        android:resource="@color/colorAccent" />
    <!-- [END fcm_default_icon] -->
    <!-- [START fcm_default_channel] -->
    <meta-data
        android:name="com.google.firebase.messaging.default_notification_channel_id"
        android:value="@string/default_notification_channel_id" />
    <!-- [END fcm_default_channel] -->
    <activity
        android:name=".EntryChoiceActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".kotlin.MainActivity" />
    <activity android:name=".java.MainActivity" />

Solution 2

If you are having this problem

enter image description here

See this link: Icon not displaying in notification: white square shown instead

I had the same problem. I solved by making transparent image from designer. Make sure your logo should be 72*72 pixels.

NOTE: Don't time waste in googling this issue, you just need a transparent icon which should be 72*72 dimensions.

Solution 3

The only thing that worked for me was to generate a Notification icon image asset in Android studio. To use the an image as the notification icon, just set Asset type to "Image" and select the file.

Tip #1: use an icon which is of white color, on transparent background!

Tip #2: if the preview on the right side of the window contains only white squares, your notification icon will look just like that - white squares! enter image description here

Tip #3: the Name of the asset is what should be added into the meta-data tag in AndroidManifest

<meta-data
 android:name="com.google.firebase.messaging.default_notification_icon"
 android:resource="@drawable/whatever_you_set_for_image_asset_name" />

Source: Taken from this answer

Solution 4

Keep your notification small as 72 x 72 and make it completely white. See the photo attached with this answer.

Then paste the codes below into your manifest.

<meta-data android:name="com.google.firebase.messaging.default_notification_icon"
 android:resource="@drawable/ic_stat_money" />

enter image description here

You can make a new icon from default icons pack of Android Studio.

For this right click on your drawable folder > New > Image Asset

Solution 5

I faced same problem and did everything suggested here and nothing worked.

Eventually, downgrading the firebase plugin from 11.8.0 to 11.6.0 resolves it with the help of this github issue.

This might also help someone.

Share:
31,027

Related videos on Youtube

Mahdi
Author by

Mahdi

http://www.bitecode.ir http://www.mahditajik.ir

Updated on July 09, 2022

Comments

  • Mahdi
    Mahdi almost 2 years

    I'm new with FCM. I cannot make FCM use my app icon as notification icon and the icon is always a white blank one.

    I imported an icon to mipmap folders but nothing seems changed. As some dude say that this is because of lollipop notification as in this question

    But the problem is, the FCM notification automatically pops up and I cannot get the Notification builder to override the icon. How can I change it?

    • D.J
      D.J over 7 years
      please post your code.
    • Selvin
      Selvin over 7 years
      @Bansal what for? on Lollipop and above notification's icons are white ... asked bazillion times
    • Selvin
      Selvin over 7 years
    • Mahdi
      Mahdi over 7 years
      @Selvin it is not the same question, cause I do not pop notification by my self in firebase so I do not control on icon and color.
    • Mahdi
      Mahdi over 7 years
      @Mateusz Pryczkowski your answer is right post it again
    • Harin
      Harin about 7 years
      You always have access to notification. your app can not show notification without setting FirebaseMessagingService.check firebase.google.com/docs/cloud-messaging/android/receive There you can use solution from given link in your question itself
  • Selvin
    Selvin over 7 years
    "An answer" which is only link to a duplicate question is not an answer...
  • Däñish Shärmà
    Däñish Shärmà over 7 years
    I gave him exact answer so he might not waste his time and focus on solving the issue.
  • Mahdi
    Mahdi over 7 years
    thanks i saw the link. but where should I implement Notification builder. cause in FCB android pop notification automatically.
  • Mahdi
    Mahdi over 7 years
    I up voted you because it was part of my answer. but I can not replace FCM auto generated notification icon.
  • Däñish Shärmà
    Däñish Shärmà over 7 years
    actually fcm is totally different from gcm. There are two types of notifications in fcm. You have to study about it. This is the very good documentation github.com/codepath/android_guides/wiki/Google-Cloud-Messagi‌​ng . One more thing in fcm if your app is in background, notifications won't hit onMessageReceived(). For this you need to do server side coding. from server the response should be like, check this link stackoverflow.com/questions/37358462/… , see(Ankit Adlakha) answer
  • encastellano
    encastellano almost 7 years
    Its the only way that i found for how correct icon. Its a firebase bug for showing notifications in background mode. Firebase pick default app icon instead your definition on your notification builder.
  • Raj
    Raj over 6 years
    should this be placed inside application tag or outside?
  • Aniket Dhandhukia
    Aniket Dhandhukia over 6 years
    Inside the application tag
  • Luke Pighetti
    Luke Pighetti over 5 years
    How do you place ic_app_icon in res? Is it a PNG? SVG? is there one? Is there one for each hdpi?
  • Developer
    Developer over 5 years
    also add <meta-data android:name="com.google.firebase.messaging.default_notifica‌​tion_icon" android:resource="@drawable/ic_notification" /> in manifest file above application tag :)
  • Raghu Mudem
    Raghu Mudem about 5 years
    @DäñishShärmà, you are right. Your NOTE helped me alot :)
  • konstantin_doncov
    konstantin_doncov over 4 years
    Also, icon should not be SVG
  • Maxim Firsoff
    Maxim Firsoff over 3 years
    That's worked, thank you. One small note, don't use [android:name="com.google.firebase.messaging.default_notific‌​ation_color"] in this case.
  • Dulaj Madusanka
    Dulaj Madusanka over 2 years
    Worked well. Clearly explain. Thak you