颤振:从代码初始化firebase消息失败

颤振:从代码初始化firebase消息失败,firebase,flutter,firebase-cloud-messaging,Firebase,Flutter,Firebase Cloud Messaging,我的目标是在我的Flatter应用程序中使用firebase云消息。我的一个要求是使用运行时提供的值配置firbase应用程序(这意味着我不能使用“google service.json”)。我使用的插件有: firebase_消息:^6.0.9| github: firebase|U核心:^0.4.4| github: 消息传递插件似乎没有这样的初始化方法。firebase_core插件支持从代码初始化,但遗憾的是消息传递插件似乎忽略了这一点。此外,我找不到任何关于如何使用firebase

我的目标是在我的Flatter应用程序中使用firebase云消息。我的一个要求是使用运行时提供的值配置firbase应用程序(这意味着我不能使用“google service.json”)。我使用的插件有:

  • firebase_消息:^6.0.9| github:
  • firebase|U核心:^0.4.4| github:
消息传递插件似乎没有这样的初始化方法。firebase_core插件支持从代码初始化,但遗憾的是消息传递插件似乎忽略了这一点。此外,我找不到任何关于如何使用firebase_core的文档,github上提供的examles也没有真正的用处

初始化的示例代码:

//来自firebase\u核心:
String name=“示例”;
FirebaseOptions=FirebaseOptions(
googleAppID:config.appID,
apiKey:config.apiKey,
databaseURL:“https://“+config.projectID+”.firebaseio.com”,
storageBucket:config.projectd+“.appspot.com”,
projectID:config.projectID,
gcmSenderID:config.projectNumber,
);
等待FirebaseApp.configure(
姓名:姓名,,
选项:选项,
);
//从firebase_消息:
//FIXME使firebase_消息使用上述配置的应用程序。
FirebaseMessaging FirebaseMessaging=FirebaseMessaging();
等待firebaseMessaging.requestNotificationPermissions();
firebaseMessaging.configure(
onMessage:(映射消息)异步{
打印(“onMessage:$message”);
},
onLaunch:(映射消息)异步{
打印(“onLaunch:$message”);
},
onResume:(映射消息)异步{
打印(“onResume:$message”);
},
);
firebaseMessaging.getToken().then((令牌){
打印(“FCM令牌:$token”);
});
执行时将抛出以下错误:

E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234): Failed to handle method call
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234): java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@19.2.0:183)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at com.google.firebase.iid.FirebaseInstanceId.getInstance(com.google.firebase:firebase-iid@@20.0.1:1)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin.onMethodCall(FirebaseMessagingPlugin.java:185)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at android.os.MessageQueue.next(MessageQueue.java:386)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at android.os.Looper.loop(Looper.java:175)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at android.app.ActivityThread.main(ActivityThread.java:7625)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234): Failed to handle method call
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234): java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first.
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@19.2.0:183)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at com.google.firebase.iid.FirebaseInstanceId.getInstance(com.google.firebase:firebase-iid@@20.0.1:1)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin.onMethodCall(FirebaseMessagingPlugin.java:237)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at android.os.MessageQueue.next(MessageQueue.java:386)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at android.os.Looper.loop(Looper.java:175)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at android.app.ActivityThread.main(ActivityThread.java:7625)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
E/MethodChannel#plugins.flutter.io/firebase_messaging( 8234):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
E/flutter ( 8234): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first., null)
E/flutter ( 8234): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7)
E/flutter ( 8234): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:321:33)
E/flutter ( 8234): <asynchronous suspension>
E/flutter ( 8234): #2      FirebaseMessaging.configure (package:firebase_messaging/firebase_messaging.dart:114:14)
E/flutter ( 8234): #3      _MainScreenState._initFirebase (package:app/screens/main_screen.dart:271:23)
E/flutter ( 8234): #4      _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:73:64)
E/flutter ( 8234): #5      _rootRunUnary (dart:async/zone.dart:1134:38)
E/flutter ( 8234): #6      _CustomZone.runUnary (dart:async/zone.dart:1031:19)
E/flutter ( 8234): #7      _FutureListener.handleValue (dart:async/future_impl.dart:139:18)
E/flutter ( 8234): #8      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:680:45)
E/flutter ( 8234): #9      Future._propagateToListeners (dart:async/future_impl.dart:709:32)
E/flutter ( 8234): #10     Future._addListener.<anonymous closure> (dart:async/future_impl.dart:389:9)
E/flutter ( 8234): #11     _rootRun (dart:async/zone.dart:1126:13)
E/flutter ( 8234): #12     _CustomZone.run (dart:async/zone.dart:1023:19)
E/flutter ( 8234): #13     _CustomZone.runGuarded (dart:async/zone.dart:925:7)
E/flutter ( 8234): #14     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:965:23)
E/flutter ( 8234): #15     _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
E/flutter ( 8234): #16     _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
E/flutter ( 8234): 
E/flutter ( 8234): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, Default FirebaseApp is not initialized in this process com.example.app. Make sure to call FirebaseApp.initializeApp(Context) first., null)
E/flutter ( 8234): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7)
E/flutter ( 8234): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:321:33)
E/flutter ( 8234): <asynchronous suspension>
E/flutter ( 8234): #2      FirebaseMessaging.getToken (package:firebase_messaging/firebase_messaging.dart:150:27)
E/flutter ( 8234): #3      _MainScreenState._initFirebase (package:app/screens/main_screen.dart:283:23)
E/flutter ( 8234): #4      _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:73:64)
E/flutter ( 8234): #5      _rootRunUnary (dart:async/zone.dart:1134:38)
E/flutter ( 8234): #6      _CustomZone.runUnary (dart:async/zone.dart:1031:19)
E/flutter ( 8234): #7      _FutureListener.handleValue (dart:async/future_impl.dart:139:18)
E/flutter ( 8234): #8      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:680:45)
E/flutter ( 8234): #9      Future._propagateToListeners (dart:async/future_impl.dart:709:32)
E/flutter ( 8234): #10     Future._addListener.<anonymous closure> (dart:async/future_impl.dart:389:9)
E/flutter ( 8234): #11     _rootRun (dart:async/zone.dart:1126:13)
E/flutter ( 8234): #12     _CustomZone.run (dart:async/zone.dart:1023:19)
E/flutter ( 8234): #13     _CustomZone.runGuarded (dart:async/zone.dart:925:7)
E/flutter ( 8234): #14     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:965:23)
E/flutter ( 8234): #15     _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
E/flutter ( 8234): #16     _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
E/flutter ( 8234): 
E/MethodChannel#plugins.flatter.io/firebase#u消息传递(8234):无法处理方法调用
E/MethodChannel#plugins.flatter.io/firebase#u消息传递(8234):java.lang.IllegalStateException:默认FirebaseApp在此进程com.example.app中未初始化。确保首先调用FirebaseApp.initializeApp(上下文)。
E/MethodChannel#plugins.flatter.io/firebase"消息(8234):位于com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase common@@19.2.0:183)
E/MethodChannel#plugins.flatter.io/firebase\u消息(8234):在com.google.firebase.iid.FirebaseInstanceId.getInstance(com.google.firebase:firebase iid@@20.0.1:1)
E/MethodChannel#plugins.flatter.io/firebase\u消息传递(8234):at io.flatter.plugins.firebasemessaging.FirebaseMessagingPlugin.onMethodCall(FirebaseMessagingPlugin.java:185)
E/MethodChannel#plugins.flatter.io/firebase"消息传递(8234):在io.flatter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231)
E/MethodChannel#plugins.flatter.io/firebase(8234):at io.flatter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
E/MethodChannel#plugins.flatter.io/firebase(8234):at io.flatter.embedding.engine.flatterjni.handlePlatformMessage(flatterjni.java:642)
E/MethodChannel#plugins.flatter.io/firebase"消息传递(8234):位于android.os.MessageQueue.nativePollOnce(本机方法)
E/MethodChannel#plugins.flatter.io/firebase"消息传递(8234):位于android.os.MessageQueue.next(MessageQueue.java:386)
E/MethodChannel#plugins.flatter.io/firebase#u消息传递(8234):位于android.os.Looper.loop(Looper.java:175)
E/MethodChannel#plugins.flatter.io/firebase"消息(8234):位于android.app.ActivityThread.main(ActivityThread.java:7625)
E/MethodChannel#plugins.flatter.io/firebase"消息传递(8234):位于java.lang.reflect.Method.invoke(本机方法)
E/MethodChannel#plugins.flatter.io/firebase(8234):com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
E/MethodChannel#plugins.flatter.io/firebase(8234):com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
E/MethodChannel#plugins.flatter.io/firebase#u消息传递(8234):无法处理方法调用
E/MethodChannel#plugins.flatter.io/firebase#u消息传递(8234):java.lang.IllegalStateException:默认FirebaseApp在此进程com.example.app中未初始化。确保首先调用FirebaseApp.initializeApp(上下文)。
E/MethodChannel#plugins.flatter.io/firebase"消息(8234):位于com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase common@@19.2.0:183)
E/MethodChannel#plugins.flatter.io/firebase\u消息(8234):在com.google.firebase.iid.FirebaseInstanceId.getInstance(com.google.firebase:firebase iid@@20.0.1:1)
E/MethodChannel#plugins.flatter.io/firebase\u消息传递(8234):at io.flatter.plugins.firebasemessaging.FirebaseMessagingPlugin.onMethodCall(FirebaseMessagingPlugin.java:237)
E/MethodChannel#plugins.flatter.io/firebase"消息传递(8234):在io.flatter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231)
E/MethodChannel#plugins.flatter.io/firebase(8234):at io.flatter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
E/MethodChannel#plugins.flatter.io/firebase(8234):at io.flatter.embedding.engine.flatterjni.handlePlatformMessage(flatterjni.java:642)
E/MethodChannel#plugins.flatter.io/firebase"消息传递(8234):位于android.os.MessageQueue.nativePollOnce(本机方法)
E/MethodChannel#plugins.flatter.io/firebase"消息传递(8234):位于android.os.MessageQueue.next(MessageQueue.java:386)
E/MethodChannel#plugins.flatter.io/firebase#u消息传递(8234):位于android.os.Looper.loop(Looper.java:175)
E/MethodChannel#plugins.flatter.io/firebase"消息(8234):位于android.app.ActivityThread.main(ActivityThread.java:7625)
E/MethodChannel#plugins.flatter.io/firebase"消息传递(8234):位于java.lang.reflect.Method.invoke(本机方法)
E/MethodChannel#plugins.flatter.io/firebase(8234):com.android.int