Skip to content

🐛 [firebase_messaging 8.0.0-dev.11] Custom Notification Sound not playing #4521

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
momoDragon opened this issue Dec 29, 2020 · 18 comments
Closed
Assignees
Labels
platform: android Issues / PRs which are specifically for Android. plugin: messaging type: missing-feature A feature that is supported on the underlying Firebase SDK but has not been exposed to Dart API.

Comments

@momoDragon
Copy link

momoDragon commented Dec 29, 2020

I have added a file sound to this directory

Screenshot 2020-12-29 at 12 20 42 PM

and my payload for sending notification in cloud functions is

     let payload =

{'notification': 
 {
                title: `title`,
                body: `body`,
                icon: 'default',
                sound: 'alert',
                priority: 'high'
            }
};

i also tried sound: 'alert.mp3',

However, the default notification sound is the one that is playing.
Any idea how i can get it to play a custom sound when notification is sent? am i doing something wrong?
i followed this:
https://stackoverflow.com/questions/54002617/custom-sound-push-notification-does-not-work-flutter

version:
firebase_messaging: ^8.0.0-dev.11

@momoDragon momoDragon added Needs Attention This issue needs maintainer attention. type: bug Something isn't working labels Dec 29, 2020
@markusaksli-nc
Copy link
Contributor

Hi @momoDragon
Could you please provide your flutter doctor -v and flutter pub deps -- --style=compact?
Thank you

@markusaksli-nc markusaksli-nc added blocked: customer-response Waiting for customer response, e.g. more information was requested. and removed Needs Attention This issue needs maintainer attention. labels Dec 29, 2020
@momoDragon
Copy link
Author

momoDragon commented Dec 30, 2020

flutter doctor -v

[✓] Flutter (Channel stable, 1.22.5, on macOS 11.1 20C69 darwin-x64, locale en-MY)
    • Flutter version 1.22.5 at /Users/mozesong/Developer/flutter
    • Framework revision 7891006299 (3 weeks ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4

 
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at /Users/mozesong/Library/Android/sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 12.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 12.3, Build version 12C33
    • CocoaPods version 1.10.0

[✓] Android Studio (version 3.4)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin version 39.0.1
    • Dart plugin version 183.6270
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

[!] VS Code (version 1.52.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    ✗ Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

[✓] Connected device (1 available)
    • M2007J3SG (mobile) • 137bf511 • android-arm64 • Android 10 (API 29)

! Doctor found issues in 1 category.

flutter pub deps -- --style=compact

Dart SDK 2.10.4
Flutter SDK 1.22.5
propo_customer 1.0.0+1

dependencies:
- auto_size_text 2.1.0 [flutter]
- build_context 2.0.4 [flutter]
- cached_network_image 2.5.0 [flutter flutter_cache_manager octo_image]
- carousel_pro 1.0.0 [flutter]
- cloud_firestore 0.14.4 [flutter meta quiver firebase_core firebase_core_platform_interface cloud_firestore_platform_interface cloud_firestore_web]
- cloud_functions 0.7.2 [meta flutter firebase_core firebase_core_platform_interface cloud_functions_platform_interface cloud_functions_web]
- connectivity 2.0.2 [flutter meta connectivity_platform_interface connectivity_macos connectivity_for_web]
- device_info 1.0.0 [flutter device_info_platform_interface]
- equatable 1.2.5 [collection meta]
- file_picker 2.1.4 [flutter flutter_web_plugins flutter_plugin_android_lifecycle plugin_platform_interface]
- firebase_auth 0.18.4+1 [meta firebase_core firebase_core_platform_interface firebase_auth_platform_interface firebase_auth_web flutter]
- firebase_core 0.5.3 [firebase_core_platform_interface flutter quiver meta firebase_core_web]
- firebase_messaging 8.0.0-dev.11 [meta flutter firebase_core firebase_core_platform_interface firebase_messaging_platform_interface firebase_messaging_web]
- firebase_storage 5.2.0 [flutter firebase_core firebase_core_platform_interface firebase_storage_web firebase_storage_platform_interface quiver]
- flutter 0.0.0 [characters collection meta typed_data vector_math sky_engine]
- flutter_bloc 6.1.1 [flutter bloc provider]
- flutter_cupertino_date_picker 1.0.26+2 [flutter]
- flutter_icons 1.1.0 [flutter]
- flutter_launcher_icons 0.8.1 [image args yaml path]
- flutter_local_notifications 3.0.2 [flutter platform flutter_local_notifications_platform_interface timezone]
- flutter_localizations 0.0.0 [flutter intl characters collection meta path typed_data vector_math]
- flutter_picker 1.1.5 [flutter]
- flutter_rating_bar 3.2.0+1 [flutter]
- flutter_webview_plugin 0.3.11 [flutter]
- fluttertoast 7.1.6 [flutter flutter_web_plugins]
- google_fonts 1.1.1 [flutter http path_provider crypto pedantic]
- image_picker 0.6.7+17 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface]
- molpay_mobile_xdk_flutter_beta 0.29.1 [flutter]
- numberpicker 1.3.0 [flutter infinite_listview]
- package_info 0.4.3+2 [flutter]
- propo_manage 1.0.0+1 [flutter propo_customer flutter_launcher_icons flutter_bloc firebase_auth cloud_functions flutter_icons file_picker image_picker firebase_storage cloud_firestore cached_network_image google_fonts string_validator fluttertoast intl dotted_border shimmer package_info provider firebase_core url_launcher]
- provider 4.3.2+3 [collection flutter nested]
- qr_code_scanner 0.1.0 [flutter]
- qr_flutter 3.2.0 [flutter qr]
- recase 3.0.1
- shimmer 1.1.2 [flutter]
- social_share 2.0.5 [flutter path_provider]
- string_validator 0.1.4
- url_launcher 5.7.10 [flutter url_launcher_platform_interface url_launcher_web url_launcher_linux url_launcher_macos url_launcher_windows]

dev dependencies:
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters charcode collection matcher meta source_span stream_channel string_scanner term_glyph typed_data]
- test 1.16.0-nullsafety.5 [analyzer async boolean_selector coverage http http_multi_server io js node_preamble package_config path pedantic pool shelf shelf_packages_handler shelf_static shelf_web_socket source_span stack_trace stream_channel typed_data web_socket_channel webkit_inspection_protocol yaml test_api test_core]

transitive dependencies:
- _fe_analyzer_shared 12.0.0 [meta]
- analyzer 0.40.6 [_fe_analyzer_shared args cli_util collection convert crypto glob meta package_config path pub_semver source_span watcher yaml]
- archive 2.0.13 [crypto args path]
- args 1.6.0
- async 2.5.0-nullsafety.1 [collection]
- bloc 6.1.1 [meta]
- boolean_selector 2.1.0-nullsafety.1 [source_span string_scanner]
- characters 1.1.0-nullsafety.3
- charcode 1.2.0-nullsafety.1
- cli_util 0.2.0 [path]
- clock 1.1.0-nullsafety.1
- cloud_firestore_platform_interface 2.2.1 [flutter meta collection firebase_core plugin_platform_interface]
- cloud_firestore_web 0.2.1+2 [flutter flutter_web_plugins http_parser meta firebase_core firebase_core_web cloud_firestore_platform_interface js]
- cloud_functions_platform_interface 3.0.3 [flutter meta firebase_core plugin_platform_interface]
- cloud_functions_web 3.1.1 [firebase_core firebase_core_web cloud_functions_platform_interface flutter flutter_web_plugins http_parser meta js]
- collection 1.15.0-nullsafety.3
- connectivity_for_web 0.3.1+4 [connectivity_platform_interface flutter_web_plugins flutter]
- connectivity_macos 0.1.0+7 [flutter]
- connectivity_platform_interface 1.0.6 [flutter meta plugin_platform_interface]
- convert 2.1.1 [charcode typed_data]
- coverage 0.14.2 [args logging package_config path source_maps stack_trace vm_service]
- crypto 2.1.5 [collection convert typed_data]
- device_info_platform_interface 1.0.1 [flutter meta plugin_platform_interface]
- dotted_border 1.0.7 [flutter path_drawing]
- fake_async 1.2.0-nullsafety.1 [clock collection]
- ffi 0.1.3
- file 5.2.1 [intl meta path]
- firebase_auth_platform_interface 2.1.4 [flutter meta firebase_core plugin_platform_interface]
- firebase_auth_web 0.3.2+3 [flutter flutter_web_plugins meta http_parser intl firebase_core firebase_core_web firebase_auth_platform_interface js]
- firebase_core_platform_interface 2.1.0 [flutter meta plugin_platform_interface quiver]
- firebase_core_web 0.2.1+1 [firebase_core_platform_interface flutter flutter_web_plugins meta js]
- firebase_messaging_platform_interface 1.0.0-dev.7 [flutter meta firebase_core plugin_platform_interface]
- firebase_messaging_web 0.1.0-dev.2 [flutter flutter_web_plugins meta firebase_core firebase_core_web firebase_messaging_platform_interface js service_worker]
- firebase_storage_platform_interface 1.0.2 [flutter meta collection firebase_core plugin_platform_interface]
- firebase_storage_web 0.1.1+1 [async crypto firebase_core firebase_core_web firebase_storage_platform_interface flutter flutter_web_plugins http js meta]
- flutter_blurhash 0.5.0 [flutter meta]
- flutter_cache_manager 2.1.0 [flutter path_provider uuid http path sqflite pedantic clock file rxdart image]
- flutter_local_notifications_platform_interface 2.0.0+1 [flutter plugin_platform_interface]
- flutter_plugin_android_lifecycle 1.0.11 [flutter]
- flutter_web_plugins 0.0.0 [flutter characters collection meta typed_data vector_math]
- glob 1.2.0 [async collection node_io path pedantic string_scanner]
- http 0.12.2 [http_parser path pedantic]
- http_multi_server 2.2.0 [async]
- http_parser 3.1.4 [charcode collection source_span string_scanner typed_data]
- image 2.1.19 [archive xml meta]
- image_picker_platform_interface 1.1.1 [flutter meta http plugin_platform_interface]
- infinite_listview 1.0.1+1 [flutter]
- intl 0.16.1 [path]
- io 0.3.4 [charcode meta path string_scanner]
- js 0.6.3-nullsafety.2
- logging 0.11.4
- matcher 0.12.10-nullsafety.1 [stack_trace]
- meta 1.3.0-nullsafety.3
- mime 0.9.7
- nested 0.0.4 [flutter]
- node_interop 1.2.1 [js]
- node_io 1.2.0 [file node_interop path]
- node_preamble 1.4.12
- octo_image 0.3.0 [flutter flutter_blurhash]
- package_config 1.9.3 [path charcode]
- path 1.8.0-nullsafety.1
- path_drawing 0.4.1+1 [vector_math meta path_parsing flutter]
- path_parsing 0.1.4 [vector_math meta]
- path_provider 1.6.24 [flutter path_provider_platform_interface path_provider_macos path_provider_linux path_provider_windows]
- path_provider_linux 0.0.1+2 [path xdg_directories path_provider_platform_interface flutter]
- path_provider_macos 0.0.4+6 [flutter]
- path_provider_platform_interface 1.0.4 [flutter meta platform plugin_platform_interface]
- path_provider_windows 0.0.4+3 [path_provider_platform_interface meta path flutter ffi win32]
- pedantic 1.10.0-nullsafety.2
- petitparser 3.1.0 [meta]
- platform 2.2.1
- plugin_platform_interface 1.0.3 [meta]
- pool 1.5.0-nullsafety.2 [async stack_trace]
- process 3.0.13 [file intl meta path platform]
- pub_semver 1.4.4 [collection]
- qr 1.3.0 [meta]
- quiver 2.1.5 [matcher meta]
- rxdart 0.25.0
- service_worker 0.2.4 [js]
- shelf 0.7.9 [async collection http_parser path stack_trace stream_channel]
- shelf_packages_handler 2.0.0 [path shelf shelf_static]
- shelf_static 0.2.9+1 [convert http_parser mime path shelf]
- shelf_web_socket 0.2.3 [shelf web_socket_channel stream_channel]
- sky_engine 0.0.99
- source_map_stack_trace 2.1.0-nullsafety.3 [path stack_trace source_maps]
- source_maps 0.10.10-nullsafety.2 [source_span]
- source_span 1.8.0-nullsafety.2 [charcode collection path term_glyph]
- sqflite 1.3.2+1 [flutter sqflite_common path]
- sqflite_common 1.0.2+1 [synchronized path meta]
- stack_trace 1.10.0-nullsafety.1 [path]
- stream_channel 2.1.0-nullsafety.1 [async]
- string_scanner 1.1.0-nullsafety.1 [charcode source_span]
- synchronized 2.2.0+2
- term_glyph 1.2.0-nullsafety.1
- test_api 0.2.19-nullsafety.2 [async boolean_selector collection meta path source_span stack_trace stream_channel string_scanner term_glyph matcher]
- test_core 0.3.12-nullsafety.5 [analyzer async args boolean_selector collection coverage glob io meta package_config path pedantic pool source_map_stack_trace source_maps source_span stack_trace stream_channel vm_service yaml matcher test_api]
- timezone 0.5.9 [path]
- typed_data 1.3.0-nullsafety.3 [collection]
- url_launcher_linux 0.0.1+4 [flutter]
- url_launcher_macos 0.0.1+9 [flutter]
- url_launcher_platform_interface 1.0.9 [flutter meta plugin_platform_interface]
- url_launcher_web 0.1.5+1 [url_launcher_platform_interface flutter flutter_web_plugins meta]
- url_launcher_windows 0.0.1+3 [flutter]
- uuid 2.2.2 [crypto convert]
- vector_math 2.1.0-nullsafety.3
- vm_service 5.5.0 [meta]
- watcher 0.9.7+15 [async path pedantic]
- web_socket_channel 1.1.0 [async crypto stream_channel]
- webkit_inspection_protocol 0.7.4 [logging]
- win32 1.7.4 [ffi]
- xdg_directories 0.1.2 [meta path process]
- xml 4.5.1 [collection convert meta petitparser]
- yaml 2.2.1 [charcode collection string_scanner source_span]

@google-oss-bot google-oss-bot added Needs Attention This issue needs maintainer attention. and removed blocked: customer-response Waiting for customer response, e.g. more information was requested. labels Dec 30, 2020
@momoDragon
Copy link
Author

Also, there is no default notification sound that runs. Tested on emulator and also physical device.
On physical device there is vibration but no sound even when the phone is not on mute and all volumes are on full.

@markusaksli-nc
Copy link
Contributor

markusaksli-nc commented Dec 31, 2020

I can reproduce this on the latest master 1.26.0-2.0.pre.165 with firebase_messaging: ^8.0.0-dev.11 using the official example on both physical and emulator.

flutter doctor -v
[√] Flutter (Channel master, 1.26.0-2.0.pre.165, on Microsoft Windows [Version 10.0.19041.685], locale et-EE)
    • Flutter version 1.26.0-2.0.pre.165 at C:\Development\flutter_master
    • Framework revision efc84ab1ec (8 hours ago), 2020-12-31 10:00:55 +0800
    • Engine revision 82b4ae86d6
    • Dart version 2.12.0 (build 2.12.0-179.0.dev)

[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
    • Android SDK at C:\Users\marku\AppData\Local\Android\sdk
    • Platform android-30, build-tools 30.0.2
    • Java binary at: C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\201.6953283\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
    • All Android licenses accepted.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.7.7)
    • Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
    • Visual Studio Community 2019 version 16.7.30621.155
    • Windows 10 SDK version 10.0.18362.0

[√] Android Studio (version 4.1.0)
    • Android Studio at C:\Users\marku\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-0\201.6953283
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

[√] Connected device (5 available)
    • SM G950F (mobile)           • ce12171c51cc001c03 • android-arm64  • Android 9 (API 28)
    • sdk gphone x86 arm (mobile) • emulator-5554      • android-x86    • Android 11 (API 30) (emulator)
    • Windows (desktop)           • windows            • windows-x64    • Microsoft Windows [Version 10.0.19041.685]
    • Chrome (web)                • chrome             • web-javascript • Google Chrome 87.0.4280.88
    • Edge (web)                  • edge               • web-javascript • Microsoft Edge 87.0.664.66

• No issues found!

Seems like this issue was #523 before but was closed due to the massive changes with the new dev version. There is also still no documentation for this feature yet on https://firebase.flutter.dev/docs/messaging/usage.

Since this is still the case we can track it here.

@markusaksli-nc markusaksli-nc added platform: android Issues / PRs which are specifically for Android. plugin: messaging type: missing-feature A feature that is supported on the underlying Firebase SDK but has not been exposed to Dart API. and removed Needs Attention This issue needs maintainer attention. type: bug Something isn't working labels Dec 31, 2020
@markusaksli-nc markusaksli-nc changed the title 🐛 [FIREBASE-CLOUD-MESSAGING] Custom Notification Sound not playing 🐛 [firebase_messaging 8.0.0-dev.11] Custom Notification Sound not playing Dec 31, 2020
@ma-ruz
Copy link

ma-ruz commented Jan 13, 2021

You have to use custom notification channel to have notifications with sound.
Nice tutorial can be found here: https://rechor.medium.com/creating-notification-channels-in-flutter-android-e81e26b33bec

@russellwheatley
Copy link
Member

russellwheatley commented May 25, 2021

@momoDragon, this appears to be an Android platform issue, specifically any device using Android API level >= 26 as referenced here. Are you able to confirm if it works on Android API 25?

@coffeeBean1991

This comment has been minimized.

@safield
Copy link

safield commented Jul 16, 2021

You have to use custom notification channel to have notifications with sound.
Nice tutorial can be found here: https://rechor.medium.com/creating-notification-channels-in-flutter-android-e81e26b33bec

I have tested this using specific notification channels and it does not resolve the issue (specifically see example code in issue #6621)..

@ronalrivandy

This comment has been minimized.

@singwithaashish

This comment has been minimized.

@yamauchieduardo
Copy link

yamauchieduardo commented Oct 5, 2021

Any update of this issue? Is that in the roadmap? Create a notification channel just for use custom sounds isn't a good approach to workaround on this issue.

@yuyoungmin-sune
Copy link

ありがとうございました。

@RyonMB
Copy link

RyonMB commented Oct 10, 2021

Already any update on this?

@strmchsr
Copy link

Any update on this issue ?

@Tetsukick
Copy link

is there any update on this issue?
I m facing this issue...

@russellwheatley
Copy link
Member

Hey folks, this isn't something to be fixed at the level of FlutterFire. It is a change in how android api >=26 handles notifications. You can read more here.

If you wish to have custom sounds for your notifications on Android api >=26, you have to create an Android notification channel which the flutter_notification_package specifically addresses.

The notification channel needs to be referenced whenever you push a notification message. Example using REST API:

{
"to": "device_token"
"notification": {
    "title": "My First Notification",
    "body": "Hello, I'm push notification"
},
"data": {
    "title": "My First Notification"
},
"android": {
    "notification": {
        "channel_id": "channel_id_1" // NOTIFICATION CHANNEL ID WITH CUSTOM SOUND REFERENCE HERE
    	}
	},
}

@Turburlar
Copy link

@russellwheatley I am trying to leverage android channels as you mentioned, and am still seeing issues. Not sure if there is a bug here. Maybe this should be reopened. or is there a main firebase repo I could post this at?

I am creating a notification channel that successfully shows up in my android settings, but no custom sound plays. The sound resource is present and there are no errors referencing it when creating the channel...

class MainActivity: FlutterActivity() {
    override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            val sound: Uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + context.packageName + "/" + R.raw.app_alert)
            val mChannel = NotificationChannel("app_alerts", "app_alerts_2", NotificationManager.IMPORTANCE_HIGH)
            val audioAttributes: AudioAttributes = AudioAttributes.Builder()
                    .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
                    .setUsage(AudioAttributes.USAGE_ALARM)
                    .build()
            mChannel.setSound(sound , audioAttributes)
            mChannel.description = "Important app Notifications"
            val notificationManager = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
            notificationManager.createNotificationChannel(mChannel)
        }
    }
}

I am sending the notification based on the latest api docs...

const { messaging } = require('firebase-admin');
var admin = require('firebase-admin');

var serviceAccount = require("path to my credentials");

const topic = 'all';

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
});

const payload = {
  notification: {
      title: "Test Notification",
      body: "This is just a test",
  },
  android: {
      notification: {
          channelId: "app_alerts",
          sound: 'app_alert'
      },
  },
  apns: {
      payload: {
          aps: {
              sound: 'app_alert.wav'
          },
      },
  },
  topic: 'all'
};

admin.messaging().send(payload).then(response => {
    console.log("Successfully sent message:", response);
})

@ma-ruz
Copy link

ma-ruz commented Mar 11, 2022

@Turburlar try using channel_id instead of channelId in the payload.

@firebase firebase locked and limited conversation to collaborators Mar 18, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
platform: android Issues / PRs which are specifically for Android. plugin: messaging type: missing-feature A feature that is supported on the underlying Firebase SDK but has not been exposed to Dart API.
Projects
None yet
Development

No branches or pull requests