我正忙于尝试使用 Firebase 的云消息服务在我的 Flutter 应用程序中设置推送通知
我正在关注 Udemy 讲座(如果您订阅了 Udemy,可以在此处找到它),并且偶然发现了一个错误,我似乎无法在网上其他任何地方找到该错误。我用来检索 FCM 注册令牌的代码如下:
void _setupPushNotifications() async {
try {
final fcm = FirebaseMessaging.instance;
final settings = await fcm.requestPermission();
print(settings.authorizationStatus);
final token = await fcm.getToken();
print('token is: $token');
} catch (e, stackTrace) {
print('Error setting up push notifications: $e');
print(stackTrace);
}
}
@override
void initState() {
_setupPushNotifications();
super.initState();
}
这与讲座中所做的完全相同,并且可以在许多在线示例/教程和文档中找到相同的代码。然而,当我调用 fcm.getToken() 时,不幸的是我收到了一个错误,但细节很少。调试控制台中打印语句、错误和堆栈跟踪的结果如下所示:
Restarted application in 308ms.
flutter: AuthorizationStatus.authorized
flutter: Error setting up push notifications: [firebase_messaging/unknown] An unknown error has occurred.
flutter: #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:648:7)
#1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:334:18) platform_channel.dart:334
<asynchronous suspension>
#2 MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:534:43) platform_channel.dart:534
<asynchronous suspension>
#3 MethodChannelFirebaseMessaging.getToken (package:firebase_messaging_platform_interface/src/method_channel/method_channel_messaging.dart:248:11) method_channel_messaging.dart:248
<asynchronous suspension>
#4 _ChatScreenState._setupPushNotifications (package:chat_app/screens/chat.dart:20:21) chat.dart:20
<asynchronous suspension>
因此,正如您所看到的,请求已获得很好的授权,并且在此之前一切正常,但是一旦我尝试使用 getToken() 方法,就会立即抛出错误。我尝试在网上搜索以找出原因。 我还重新启动了我的应用程序,尝试了不同的 IOS 模拟器,并运行 flutter clean 和 flutter doctor。我真的不知道从这里还能去哪里,因为关于错误可能是什么的信息太少了。