flutter - 当 flutter 应用程序处于后台时,通知不会进入 Release模式

标签 flutter firebase google-cloud-firestore background-service

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await GetStorage.init();
  await Firebase.initializeApp();
  await PushNotificationsService().init();
  FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
  runApp(MyApp());
  setuplocator();
}

以上代码设置在主线程。现在的问题是应用程序在后台时没有收到通知。在前台它工作正常。但它不在后台运行。

但这一切都是在 Debug模式下发生的,而不是在 Release模式下发生的。怎么办?

最佳答案

@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
// handle message
}

只需在上面的 _firebaseMessagingBackgroundHandler 方法上添加 @pragma('vm:entry-point')

我必须再次指出,这个问题只发生在发布版本上,并且只发生在 Android 平台上(我已经在装有 Android 13 的模拟器以及运行 Android 12 的三星设备上对此进行了测试)。在调试和配置文件模式下,应用程序收到 2 个通知,一个来自 native Firebase Messaging,一个来自 Flutter 后台处理程序的 firebase_local_notifications,它也应该在 Release模式下执行(这在 3.0.5 中正常工作),但是,在 3.3.0 中,它只显示 native 通知,没有 flutter_local_notifications 生成的痕迹。

关于flutter - 当 flutter 应用程序处于后台时,通知不会进入 Release模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74599764/

相关文章:

ios - FIRDataBaseReference 未被识别

angular - 如何从 firebase.firestore.DocumentSnapshot 获取文档数据?

java - 对我的代码执行输入验证的最有效方法是什么?

node.js - 如何使用云功能正确初始化 Firebase 功能测试?

flutter - 列内的Flutter ListView不起作用

dart - Flutter - 从另一个类调用持久性底部工作表

flutter - 使用 Custom Painter 在 Flutter 中遮盖两个图像

flutter - 根路由和不同的initialRoute创建奇怪的WidgetTree

swift - Xcode 火力地堡 |无法将类型“AuthDataResult”的值转换为预期的参数类型 'User'

firebase - 我如何组合多个 firestore 查询