1

当后台firebase中的应用程序首先处理通知然后颤动本地通知在屏幕上显示一个弹出窗口以使firebase不显示通知时,我面临显示双重通知的问题

ps 删除
FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);

使应用程序不处理后台通知

FirebaseMessaging.onMessage.listen(
      (RemoteMessage? message) async {
      
        _showNotification(
            id: 0,
            title: message?.notification?.title ?? '',
            body: message?.notification?.body ?? '');
      },
    );

    FirebaseMessaging.onBackgroundMessage(firebaseMessagingBackgroundHandler);

firebaseMessagingBackgroundHandler:

Future<void> firebaseMessagingBackgroundHandler(RemoteMessage? message) async {

  _showNotification(
      id: 0,
      title: message?.notification?.title ?? '',
      body: message?.notification?.body ?? '');

}

firebase 包在通知标志中包含标题和正文,即使应用程序在后台工作以任何方式使通知仅由 flutter_local_notification 包处理

4

2 回答 2

0

你的 firebaseMessagingBackgroundHandler 看起来像......

Future<void> firebaseMessagingBackgroundHandler(RemoteMessage? message) async {
  await Firebase.initializeApp(); //initialize firebase
  //INITIALIZE YOUR FLUTTER LOCAL NOTIFICATION PACKAGE 
  // INITIALIZE YOUR ANDROID CHANNEL
  //then show the notification
  _showNotification(
      id: 0,
      title: message?.notification?.title ?? '',
      body: message?.notification?.body ?? '');

}

于 2022-01-16T10:28:53.650 回答
0
  • 一个可能的问题是你的 local_notification_package 的初始化

它应该是最顶层的初始化,即在调用函数flutter_local_notifications之前初始化包和android通道_showNotification

  • 另一个可能的问题是firebase的初始化。它应该在应用程序运行之前完成,因为它是一个前台通知
于 2022-01-16T10:24:29.883 回答