希望有人能帮助。一直在挣扎,现在约2个星期,以获得fcm推送通知工作Flutter网页应用程序。使用Flutter3.0.7。
我创建了一个firebase项目,用cli设置它,并收到了一个带有web选项的firebase_options.dart文件,然后创建了一个firebase-messaging-sw.js文件。
当从firebase控制台测试时,我收到了一条消息。但当我使用rest API发送消息时,它显示它发送了消息,但没有收到任何消息。它显示如下
FCM请求已发送!{“多播标识”:3383324657233668851,“成功”:0,“失败”:1,“规范标识”:0,“结果”:[{“错误”:“注册无效”} ]} FCM请求已发送!{“多播标识”:5796359055236685312,“成功”:0,“失败”:1,“规范标识”:0,“结果”:[{“错误”:“注册无效”} ]}
在获得要发送到的设备的注册密钥后,我使用以下方法发送消息
sendPushMessageToWeb(String? token) async {
final endpoint = "https://fcm.googleapis.com/fcm/send";
final header = {
“授权”:“内容类型”:'应用程序/json' }; http.post(URI.解析(端点),标头:标题、正文:jsonEncode({“到”:“${令牌}",“通知”:{“body”:“您的通知正文”,“title”:“您的通知标题文本”,“声音”:“默认”} }))打印(“FCM请求Web已发送!”);}它看起来像是在抱怨注册密钥,但是在控制台中使用相同的密钥可以工作。
为什么它会从控制台发送和接收消息,而不是从rest API?我没有在我的index.html文件中做任何更改,为代码实验室,我在第一次使用,是无法找到后,我所有的搜索没有提到任何有关的变化和控制台消息收到。
谢谢你
1条答案
按热度按时间jk9hmnmh1#
我自己的错误是没有思考。我从来没有检查过令牌的长度。我的php mysql上的变量只有100长,但令牌比这更长。谢谢。