Flutter获取FCM Token失败:SERVICE_NOT_AVAILABLE问题求助
Flutter获取FCM Token报错:SERVICE_NOT_AVAILABLE
问题详情
我在Flutter项目中执行以下代码尝试获取FCM Token,但运行时出错,无法打印Token:
void main() async{ WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); final _firebaseMessaing = FirebaseMessaging.instance; await _firebaseMessaing.requestPermission(); final fCMToken = await _firebaseMessaing.getToken(); print("This is token =========> ${fCMToken}"); runApp(MyApp()); }
报错信息如下:
Unhandled Exception: [firebase_messaging/unknown] java.io.IOException: SERVICE_NOT_AVAILABLE E/flutter (17731): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:651:7) E/flutter (17731): #1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:322:18) E/flutter (17731): <asynchronous suspension> E/flutter (17731): #2 MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:522:43) E/flutter (17731): <asynchronous suspension> E/flutter (17731): #3 MethodChannelFirebaseMessaging.getToken
解决方法
- 检查网络与Google服务连接:该错误大多因设备无法访问Google服务导致,优先确认真机/模拟器能正常连接Google服务,建议用真机测试,部分模拟器可能缺失完整的Google服务框架。
- 核对Firebase配置文件:确保
google-services.json(Android项目android/app目录下)或GoogleService-Info.plist(iOS项目ios/Runner目录下)配置正确,与Firebase控制台的项目信息完全匹配。 - 更新Firebase依赖:执行
flutter pub upgrade更新firebase_core、firebase_messaging到最新版本,旧版本可能存在兼容性问题。 - 调整网络环境:若所在地区限制Google服务,可尝试切换网络后重新运行项目。
- 清理项目缓存并重启:执行
flutter clean清理缓存,重启设备后重新编译运行项目,解决临时的服务连接异常。 - 确认Android权限配置:在
AndroidManifest.xml中添加必要权限:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
内容的提问来源于stack exchange,提问作者Md. Samiul Islam
相关产品推荐
相关产品推荐

