我已将我的项目连接到 firebase 以获取 FCM 通知,并构建此功能,以便在管理员按下特殊按钮时向我的应用程序的所有用户发送通知:
void sendNotificationToAllUsers() async {
var url = Uri.parse('https://fcm.googleapis.com/fcm/send');
const serverKey = 'XXXXXXXXXXXXXXXXXXXX';
var headers = {
'Content-Type': 'application/json',
'Authorization': 'key=$serverKey',
};
var body = {
'notification': {
'title': 'Hey guys',
'body': 'How are you?!',
},
'to': '/topics/all',
'click_action' : 'FLUTTER_NOTIFICATION_CLICK'
};
try {
var response = await http.post(
url,
headers: headers,
body: jsonEncode(body),
);
if (response.statusCode == 200) {
print('Notification sent successfully');
} else {
print('Failed to send notification: ${response.reasonPhrase}');
}
} catch (e) {
print('Failed to send notification: $e');
}
}
我已将此脚本添加到 AndroidManafist.xml 中:
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
但它在控制台中打印:
Notification sent successfully
而不发送任何通知!!!
我确实进行了搜索,但没有发现有关从应用程序而不是从 Firebase 控制台一次推送发送多个设备的想法!!!
如有任何帮助,我们将不胜感激。
从评论看来,您的客户实际上并未订阅“/topics/all 主题”。这不是自动操作,但您必须在客户端代码中执行此操作。
有关如何执行此操作的说明,请参阅有关 订阅主题的文档。