我正在尝试使用 firebase 云功能和云消息发送通知/消息。 通知在后台有效,但在前台无效。
以下是云函数的python代码。
message = messaging.Message(
token=receiver_device_token,
notification=messaging.Notification(
title= '*****',
body=sender + ' sent you a message!'
),
data = {"name": sender ,
"imgURL" : imgURL }
)
我按照建议使用数据字典,所有键和值都是字符串。
在 Flutter 中,我在 void main() 中添加了以下基本代码
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
print('Got a message whilst in the foreground!');
print('Message data: ${message.data}');
if (message.notification != null) {
print('Message also contained a notification: ${message.notification}');
}
});
但是,当消息应该在前台接收时,我在 onMessage.listen 中没有收到任何打印语句,但在控制台中收到以下内容:
D/FLTFireMsgReceiver(15407):收到消息广播
我还尝试仅使用一个常量字符串值,例如“test”,插入我的发件人和 imgURL 变量,以确保这不是问题。还是没成功
这没有多大意义,但只需将以下内容添加到其顶部即可使其工作。
FirebaseMessaging messaging = FirebaseMessaging.instance;
await messaging.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true,
);