我已经在我的应用程序中包含了Firebase消息,当我try 订阅主题时,我收到以下错误.

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.

正如您所看到的,它只是简单地说"发生了一个未知错误",这对我来说没有太大帮助.

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

  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');
            }
          }
        }
      });
    }
  }

我在控制台中收到的每个正在循环和订阅的主题都有相同的错误.奇怪的是,推送通知以前是有效的,但现在似乎不起作用了.

我已经try 将Ffltter更新到最新版本(3.3.7),我已经try 将Firebase核心包(2.1.1)和Firebase消息传递包更新到它们的最新版本(14.0.4),但我仍然收到错误.

From pubspec.yaml:

  firebase_core: ^2.1.1
  firebase_messaging: ^14.0.4

token个遗失的是什么?subscribeToTopic()函数似乎只接受主题名称字符串.我是不是遗漏了什么?

谢谢你,任何帮助都将不胜感激.

推荐答案

最终,这只是iOS模拟器的一个问题.Android模拟器没有出现该错误,推送通知在物理设备上运行良好.

Flutter相关问答推荐

Flutter ReorderableListView在可滚动父级中无法完美工作

如何使用Firebase Firestore来获取外部集合中的文档子集合中的文档

自定义ItemBuilderFlutter

如何使排内 children 的身高与其他排内 children 的身高相适应?

有没有可能不在BlocBuilder中重新构建内容?

dart /长笛中的返回早期模式和拆分方法

请求已在 flutter 中发送到 django 服务器,并且已返回响应,但条件仍然为 false

如何使用 Material3 创建带有高度的完美白色提升按钮?

如何使自动焦点位于已经有一些文本的 TextField 的第一行?

使用Flutter项目设置Firebase遇到困难?这些解决方案或许能帮到你!

为什么我们需要使用ChangeNotifierProvider而不是仅仅使用ChangeNotifier?

通过在父窗口小部件功能上设置状态来浏览屏幕

Flutter 判断 Uint8List 是否有效 Image

如何从另一个页面访问 Firebase 值?

如何让小部件根据小部件的大小构建不同的布局?

如何在 flutter 中使用带有有效负载数据的重定向来执行 firebase 推送通知.?

如何验证非表单字段?

如何在Flutter中制作带有波浪边框的圆圈来显示图像?

我想在数组中添加项目

使用 Firebase/Flutter 进行应用判断 - 100% 无效请求