Firebase 消息传递没有默认构造函数
Posted
技术标签:
【中文标题】Firebase 消息传递没有默认构造函数【英文标题】:Firebase messaging doesn't have a default constructor 【发布时间】:2021-06-24 00:30:23 【问题描述】:import 'package:flutter/material.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class PushNotificationService
final FirebaseMessaging firebaseMessaging = FirebaseMessaging();
Future initialize(context) async
firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async
retrieveRideRequestInfo(getRideRequestId(message), context);
,
onLaunch: (Map<String, dynamic> message) async
retrieveRideRequestInfo(getRideRequestId(message), context);
,
onResume: (Map<String, dynamic> message) async
retrieveRideRequestInfo(getRideRequestId(message), context);
,
);
清单:
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT"
/>
</intent-filter>
错误:“FirebaseMessaging”类没有默认构造函数。 尝试使用“FirebaseMessaging”中定义的命名构造函数之一。
【问题讨论】:
您使用的是哪个版本的 Firebase 消息传递? 【参考方案1】:试试FirebaseMessaging.instance
而不是FirebaseMessaging()
,应该可以。
【讨论】:
是的,我就是这么做的。谢谢 @FranklinPremkumar 请将其标记为正确答案【参考方案2】:尝试添加依赖firebase_core 1.4.0
导入'package:firebase_core/firebase_core.dart';
@override
void initState()
// TODO: implement initState
super.initState();
Firebase.initializeApp();
onPressed: () async
String token = await FirebaseMessaging.instance.getToken();
print(token);
,
【讨论】:
【参考方案3】:使用FirebaseStorage.instanceFor
代替默认构造函数
【讨论】:
【参考方案4】:使用旧版本的 FirebaseMessaging。我用firebase_messaging: ^4.0.0+1
【讨论】:
以上是关于Firebase 消息传递没有默认构造函数的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 云消息传递:我们无法注册默认服务工作者错误
Firebase 云消息传递 - 有多个主题 - 没有消息重复
Firebase云消息传递`onMessageReceived`没有被调用?