W/FirebaseMessaging: Missing Default Notification Channel metadata in AndroidManifest. Default value will be used
Solution 1
I know this is late but I hope this helps you or at least someone else. It has been answered before here.
Basically, you have the meta-data name wrong.
Instead of
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/notification_channel_id" />
it should be
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id" />
UPDATE: Added missing quote
Solution 2
Answer and tips for newer
The meta-data tag:
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/notification_channel_id" />
Is going inside the application tag on AndroidManifest.xml, example:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.domain.appname">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@mipmap/ic_launcher" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id"/>
And there is a file called "app/src/main/res/values/strings.xml" where you need to add this line inside resources tag :
<string name="default_notification_channel_id">com.domain.appname.urgent</string>
The value "com.domain.appname.urgent" need to be the same as your default created channel.
strings.xml look like:
<?xml version='1.0' encoding='utf-8'?>
<resources>
<string name="app_name">MyApp</string>
<string name="title_activity_main">MyApp</string>
<string name="package_name">com.domain.appname</string>
<string name="custom_url_scheme">com.domain.appname</string>
<string name="default_notification_channel_id">com.domain.appname.urgent</string>
</resources>
Solution 3
I had the same problem as you. You had an incorrect meta name.
Instead of
android:name="com.google.firebase.messaging.default_notification_channel"
you should use
android:name="com.google.firebase.messaging.default_notification_channel_id"
the only different is the "_id"
![jazzbpn](https://i.stack.imgur.com/6uv0w.png?s=256&g=1)
jazzbpn
With 6+ years of experience, I have developed many iOS/android applications in different context, professional and oldest passion for computer programming began very early in my life. I've learned the social environment is as important as logic aspects of the developing approach then I appreciate very much to get in touch with positive and eager colleagues that involve me in new and exciting challenges. This is why I still want to get involved in new opportunities to improve my skillness.
Updated on December 04, 2021Comments
-
jazzbpn over 2 years
Our app now has targetSdkVersion 26 (Android 8) and the app uses FCM push notifications. When app is in the foreground state the push notification is working well. The issue appears while clicking the notification when the app is not in the foreground state. I just added the metadata in manifest but still got same error.
AndroidManifest.xml
<meta-data android:name="com.google.firebase.messaging.default_notification_channel" android:value="@string/default_notification_channel_id"/>
MyFirebaseMessagingService.java
/** * Create and show a simple notification containing the received FCM message. */ private void sendNotification(NotificationModel notificationModel) { Intent intent; if (notificationModel.getAppLink() != null) { intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(notificationModel.getAppLink())); } else { intent = new Intent(this, NoticeActivity.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); if (notificationModel.getAppLink() != null) { notificationBuilder.setSmallIcon(R.mipmap.ic_launcher); } else { notificationBuilder.setSmallIcon(R.mipmap.ic_launcher); } notificationBuilder.setContentTitle(notificationModel.getTitle()) .setContentText(notificationModel.getMessage()) .setAutoCancel(true) .setSound(defaultSoundUri) .setContentIntent(pendingIntent); NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { int importance = NotificationManager.IMPORTANCE_LOW; NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "NOTIFICATION_CHANNEL_NAME", importance); notificationChannel.enableLights(true); notificationChannel.setLightColor(Color.RED); notificationChannel.enableVibration(true); notificationChannel.setVibrationPattern(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400}); assert notificationManager != null; notificationBuilder.setChannelId(NOTIFICATION_CHANNEL_ID); notificationManager.createNotificationChannel(notificationChannel); } assert notificationManager != null; notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); }
-
ToolmakerSteve over 5 yearsRelated question with better answer. Importantly, see comments under the accepted answer, explaining how to define
@string/default_notification_channel_id
in yourstrings.xml
- otherwise, you are referring to a non-existent value. -
ToolmakerSteve over 5 yearsPossible duplicate of Firebase: How to set default notification channel in Android app?
-
-
shinriyo almost 4 yearsdefault_notification_channel_id is already set? or should set where?
-
K.Amanov about 3 years@shinriyo default_notification_channel_id set on res/values/strings.xml. So you can edit and set your channel_id
-
Nico Haase over 2 yearsPlease add some explanation to your answer such that others can learn from it