gpt4 book ai didi

在 iOS 模拟器中收到 Firebase FCM 通知,但在 Flutter 应用程序的真实 iOS 设备上收到 GCM(?)

转载 作者:行者123 更新时间:2023-12-04 15:42:06 24 4
gpt4 key购买 nike

编辑:根据 Firebase 支持,它应该看起来像设备日志中显示的那样

我正在通过 FCM 向我的 Flutter 应用程序添加推送通知,但 iOS 模拟器与我的 iPhone 5s 上的消息格式非常不同。当从 Firebase 控制台收到推送通知到事件/打开的应用程序时。

问题:我需要做什么来确保真实设备以正确的格式接收消息?


从模拟器(iPhone XR,12.2)登录(看起来像官方代码示例):

    onMessage: {
from: 123000000000,
collapse_key: com.mydomainnamehere,
notification: {
body: Lorem ipsum,
title: Title,
e: 1,
tag: campaign_collapse_key_9876543210011223344
}
}


从真实设备(iPhone 5s,12.2)登录(在线找不到任何引用资料):

onMessage: {
google.c.a.c_l: notif_name,
google.c.a.e: 1,
aps: {
alert: {
title: Title,
body: Lorem ipsum
}
},
gcm.n.e: 1,
google.c.a.c_id: 9876543210011223344,
google.c.a.udt: 0,
gcm.message_id: 1234567800998877,
google.c.a.ts: 1234567800
}



通知从 Firebase 控制台发送到所有设备,日志取自同一通知(但我匿名了 ID)。

设备和模拟器同时从 Android Studio 运行相同的 Flutter 代码。

我的 pubspec.yaml 中引用 FCM 的部分

  firebase_core: ^0.4.0+1
firebase_auth: 0.11.1
cloud_firestore: ^0.11.0+2
firestore_ui: ^1.4.0
firebase_messaging: ^5.0.2

软件和SDK版本

Flutter Channel 开发者,v1.8.4,Mac OS X 10.14.5,Android SDK 版本 28.0.3,Xcode 10.2.1,Android Studio 版本 3.4

Flutter 消息处理代码

void initState() {
super.initState();

if (Platform.isIOS) {
iosSubscription = _fcm.onIosSettingsRegistered.listen((IosNotificationSettings settings) {
print("FCM settings received: $settings");
});

_fcm.requestNotificationPermissions(IosNotificationSettings());
}

_fcm.configure(
onMessage: (Map<String, dynamic> message) async {
print("onMessage: $message");
},
);

getFcmToken();
}

void getFcmToken() async {
var token = await FirebaseMessaging().getToken();
print("Token $token");
}

我原以为模拟器和真实设备上的 JSON 格式是相同的。但真实设备甚至没有收到所有通知。

最佳答案

根据 Firebase 支持,我们应该无法在模拟器中获取推送通知,他们说上面的 gcm-format 确实是正确的。

解决方案是始终使用上一个问题的答案中所述的键值对 FCM - Get Message Label

关于在 iOS 模拟器中收到 Firebase FCM 通知,但在 Flutter 应用程序的真实 iOS 设备上收到 GCM(?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57492890/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com