【问题标题】:Unhandled Exception: Null check operator used on a null value (Flutter FCM)未处理的异常:对空值使用空检查运算符 (Flutter FCM)
【发布时间】:2021-10-19 13:18:13
【问题描述】:

我正在尝试为我的应用程序实现通知,但在初始化通知时 FirebaseMessaging.onBackgroundMessage((message) => myBackgroundMessageHandler(message)) 会出现以下错误。我查看了this issuethis issue 并采用了我在类外用作参数的函数myBackgroundMessageHandler,但错误仍然存​​在。

以下是错误:

E/flutter (10115): [错误:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:对空值使用空检查运算符 E/颤振 (10115): #0
MethodChannelFirebaseMessaging.registerBackgroundMessageHandler (包:firebase_messaging_platform_interface/src/method_channel/method_channel_messaging.dart:179:53) E/颤振 (10115): #1
FirebaseMessagingPlatform.onBackgroundMessage= (包:firebase_messaging_platform_interface/src/platform_interface/platform_interface_messaging.dart:101:16) E/颤振(10115):#2 FirebaseMessaging.onBackgroundMessage (包:firebase_messaging/src/messaging.dart:83:31)E/flutter (10115): #3 main (package:okepos/main.dart:130:21) E/flutter (10115):

下面是我的代码:

Future<dynamic> myBackgroundMessageHandler(RemoteMessage message) {
  print('backgroundMessage: message => ${message.toString()}');

}


void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  FirebaseMessaging.onBackgroundMessage((message) => myBackgroundMessageHandler(message));

  }

【问题讨论】:

  • 你试过FirebaseMessaging.onBackgroundMessage(myBackgroundMessageHandler)吗?

标签: firebase flutter push-notification notifications firebase-cloud-messaging


【解决方案1】:

您可能想尝试通过以下方式编写您的 main 函数。如果您想在后台运行您的函数,可能需要初始化 Firebase。

Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
  // If you're going to use other Firebase services in the background, such as Firestore,
  // make sure you call `initializeApp` before using other Firebase services.
  await Firebase.initializeApp();
  print('Handling a background message ${message.messageId}');
  if (message.notification != null) {
    print(message.notification.title);
    print(message.notification.body);
  }

  // Create a notification for this
}

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  // Background Message Handler
  FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
  runApp(MyApp());
}

如果您想查看我使用 Flutter 实现的 Firebase 消息传递,请查看my github repo

【讨论】:

  • 谢谢。是的,它奏效了。您是否碰巧知道为什么它不适用于我的代码?好像差不多
猜你喜欢
  • 1970-01-01
  • 2021-08-19
  • 2021-07-22
  • 1970-01-01
  • 2022-10-19
  • 1970-01-01
  • 2021-09-09
  • 2021-11-18
相关资源
最近更新 更多