我是直接站在巨人的肩上了
参考文档,将fcm集成到flutter项目中。
运行遇到错误:MissingPluginException(No implementation found for method FcmDartService#initialized on channel
查询github上issue发现有同样的错误,参考issue文档成功解决
再运行,没有错误了,赶紧到fcm console中发一条消息测试一下。能收到了,但是log中有异常:Missing Default Notification Channel metadata in AndroidManifest
后来也在stackoverflow中找到解决方法, 需要在res/values/styles.xml加
<string name="default_notification_channel_id" translatable="false">default_notification_channel_id</string>
再在AndroidManifest.xml中加meta-data:
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id"/>
再运行,日志里还有异常
W/ConnectionTracker(29097): Exception thrown while unbinding
W/ConnectionTracker(29097): java.lang.IllegalArgumentException: Service not registered: com.google.android.gms.measurement.internal.zzjl@56d898d
W/ConnectionTracker(29097): at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1860)
W/ConnectionTracker(29097): at android.app.ContextImpl.unbindService(ContextImpl.java:1834)
W/ConnectionTracker(29097): at android.content.ContextWrapper.unbindService(ContextWrapper.java:752)
W/ConnectionTracker(29097): at com.google.android.gms.common.stats.ConnectionTracker.zza(com.google.android.gms:play-services-basement@@17.3.0:55)
W/ConnectionTracker(29097): at com.google.android.gms.common.stats.ConnectionTracker.unbindService(com.google.android.gms:play-services-basement@@17.3.0:50)
W/ConnectionTracker(29097): at com.google.android.gms.measurement.internal.zzir.zzag(com.google.android.gms:play-services-measurement-impl@@18.0.0:245)
W/ConnectionTracker(29097): at com.google.android.gms.measurement.internal.zzir.zzal(com.google.android.gms:play-services-measurement-impl@@18.0.0:262)
W/ConnectionTracker(29097): at com.google.android.gms.measurement.internal.zzir.zzc(com.google.android.gms:play-services-measurement-impl@@18.0.0:336)
W/ConnectionTracker(29097): at com.google.android.gms.measurement.internal.zziq.zza(com.google.android.gms:play-services-measurement-impl@@18.0.0:2)
W/ConnectionTracker(29097): at com.google.android.gms.measurement.internal.zzal.run(com.google.android.gms:play-services-measurement-impl@@18.0.0:7)
W/ConnectionTracker(29097): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
W/ConnectionTracker(29097): at java.util.concurrent.FutureTask.run(FutureTask.java:266)
W/ConnectionTracker(29097): at com.google.android.gms.measurement.internal.zzfv.run(com.google.android.gms:play-services-measurement-impl@@18.0.0:2
参考issue的解决方案,我加了
implementation 'com.google.android.gms:play-services-basement:17.5.0'
客户端解决,接下来解除java firebase-admin sdk, 让后端来发消息。
无聊是后端还是移动端, 要想使用FCM, 必须得FQ, 否则移动端获取不到token, firebase-admin也无法oauth2.
本文讲述在Flutter项目中集成FCM的过程。运行时遇到MissingPluginException错误,参考GitHub上的issue文档解决。测试时log出现异常,在stackoverflow找到解决办法。之后客户端问题解决,让后端发消息。同时指出,无论后端还是移动端使用FCM都需FQ,否则移动端无法获取token。


被折叠的 条评论
为什么被折叠?



