【问题标题】:Having trouble with flutter firebase messaging migration ]:Flutter Firebase消息迁移遇到问题]:
【发布时间】:2021-04-28 05:17:16
【问题描述】:
  Future<Map<String, dynamic>> sendAndRetrieveMessage({String thatToken, String bodyMessage, String titleMessage}) async {
print('\n$thatToken' + '\n$bodyMessage' + '\n$bodyMessage');
await firebaseMessaging.requestPermission(
  sound: true,
  badge: true,
  alert: true,
  provisional: false,
);

await http.post(
  'https://fcm.googleapis.com/fcm/send',
  headers: <String, String>{
    'Content-Type': 'application/json',
    'Authorization': 'key=$serverToken',
  },
  body: jsonEncode(
    <String, dynamic>{
      'notification': <String, dynamic>{'body': 'this is a body', 'title': 'this is a title'},
      'priority': 'high',
      'data': <String, dynamic>{'click_action': 'FLUTTER_NOTIFICATION_CLICK', 'id': '1', 'status': 'done'},
      'to': thatToken,
    },
  ),
);

final Completer<Map<String, dynamic>> completer = Completer<Map<String, dynamic>>();

FirebaseMessaging.configure(
  onMessage: (Map<String, dynamic> message) async {
    completer.complete(message);
  },
);

return completer.future;

}

世界你好!上面的代码是我之前使用的firebaseMessaging配置代码,今天终于尝试迁移到最新版本,即8.0.0-dev.14 firebaseMessaging。在这里,我遇到了棘手的问题要解决。迁移文档说 '.configure()' 已被完全删除,我必须为每种情况使用自定义静态方法。那么问题来了。

我可以遵循从源代码迁移的其他部分的替代指南,但我无法找出执行与上述代码相同的功能所需的确切代码 sn-p。这是因为我对那些 Completer 或配置到底在做什么只有很少的想法。我的错..]:

所以,我希望已经解决了这些迁移问题的人,尤其是“配置”方法可以帮助我。最后,下面的代码是其错误消息的罪魁祸首。提前谢谢你[:

    FirebaseMessaging.configure(
  onMessage: (Map<String, dynamic> message) async {
    completer.complete(message);
  },
);

上述 sn-p 的错误消息:错误:未为类型“FirebaseMessaging”定义方法“配置”。

【问题讨论】:

    标签: firebase flutter dart firebase-cloud-messaging flutter-dependencies


    【解决方案1】:

    要迁移到 Firebase 消息传递 > 8.0.0,您可以使用 Firebase 核心中的 initializeApp,然后将回调添加到 FirebaseMessagingonMessage 方法

    import 'package:firebase_core/firebase_core.dart';
    import 'package:firebase_messaging/firebase_messaging.dart';
    
    await Firebase.initializeApp();
    
    FirebaseMessaging.onMessage.listen((RemoteMessage message) {
      completer.complete(message);
    });
    

    来源:https://firebase.flutter.dev/docs/migration/#plugin-changes

    【讨论】:

      猜你喜欢
      • 2011-01-16
      • 2019-10-25
      • 2021-06-12
      • 2015-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 2019-12-30
      相关资源
      最近更新 更多