Firebase Cloud Messaging (Flutter):订阅主题时出现错误消息

dan*_*471 5 push-notification firebase flutter firebase-cloud-messaging

我已将 Firebase Messaging 包含在我的应用程序中,当我尝试订阅主题时收到以下错误。

FLTFirebaseMessaging: An error occurred while calling method Messaging#subscribeToTopic, errorOrNil => {
    NSLocalizedFailureReason = "Invalid registration response :'Error=INVALID_PARAMETERS'. It is missing 'token' field.";
}
flutter: subscription error: [firebase_messaging/unknown] An unknown error has occurred.
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它只是说“发生了未知错误”,这对我来说没有多大帮助。

这是我的代码,旨在获取推送通知的权限,然后获取令牌并订阅主题列表......

  Future<void> requestMessagingPermission() async {
    FirebaseMessaging messaging = FirebaseMessaging.instance;

    NotificationSettings settings = await messaging.requestPermission(
      alert: true,
      announcement: false,
      badge: true,
      carPlay: false,
      criticalAlert: false,
      provisional: false,
      sound: true,
    );

    print('User granted permission: ${settings.authorizationStatus}');
    if (settings.authorizationStatus == AuthorizationStatus.authorized) {
      print('User granted notifiactions permission');
      messaging.getToken().then((token) async {
        print('Messaging token: $token');

        //configure notification topics
        //gets a list of strings (topic names) from provider and loops through them to subscribe to them all

        GlobalProvider provider = context.read<GlobalProvider>();
        if (provider.notificationTopicsSet == false) {
          //subscribe to topics
          for (var topic in provider.notificationTopics) {
            print('topic subscribing... $topic');
            try {
              await messaging.subscribeToTopic(topic).then((value) => print('topic subscribed: $topic'));
            } catch (e) {
              print('subscription error: $e');
            }
          }
        }
      });
    }
  }
Run Code Online (Sandbox Code Playgroud)

对于正在循环和订阅的每个主题,我在控制台中遇到相同的错误。奇怪的是,推送通知以前可以使用,但现在似乎不行了。

我尝试将 Flutter 更新到最新版本 (3.3.7),尝试将 Firebase Core 包 (2.1.1) 和 Firebase 消息包更新到最新版本 (14.0.4),但仍然收到错误。

来自 pubspec.yaml:

  firebase_core: ^2.1.1
  firebase_messaging: ^14.0.4
Run Code Online (Sandbox Code Playgroud)

token这缺少什么?该subscribeToTopic()函数似乎只接受主题名称字符串。我错过了什么吗?

谢谢,任何帮助将不胜感激。

dan*_*471 7

这最终只是 iOS 模拟器的问题。Android 模拟器不会出现该错误,并且推送通知在物理设备上工作正常。

  • 有人有解决这个问题的方法吗?我在模拟器上仍然遇到这个问题 (2认同)