flutter - 添加flutter firebase auth ui后应用程序崩溃
问题描述
Flutter firebase auth UI 有一些问题,因为 firebase_auth 版本未匹配问题
我的颤振应用程序崩溃并且无法识别问题,在 android studio 中打开后,我遇到了问题,它就在这里
Caused by: java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.mycom.mypetshop. Make sure to call FirebaseApp.initializeApp(Context) first.
at com.google.firebase.FirebaseApp.getInstance(com.google.firebase:firebase-common@@16.0.2:240)
at com.google.firebase.auth.FirebaseAuth.getInstance(Unknown Source)
at io.flutter.plugins.firebaseauth.FirebaseAuthPlugin.<init>(FirebaseAuthPlugin.java:54)
at io.flutter.plugins.firebaseauth.FirebaseAuthPlugin.registerWith(FirebaseAuthPlugin.java:47)
at io.flutter.plugins.GeneratedPluginRegistrant.registerWith(GeneratedPluginRegistrant.java:20)
at com.vyapari2online.mypetshop.MainActivity.onCreate(MainActivity.java:11)
at android.app.Activity.performCreate(Activity.java:5990)
如何解决这个问题?
在项目“应用程序”中,已解析的 Google Play 服务库依赖项依赖于另一个确切版本(例如“[15.0.1]”,但未解析为该版本。库表现出的行为将是未知的。
依赖失败:com.google.android.gms:play-services-flags:15.0.1 -> com.google.android.gms:play-services-basement@[ 15.0.1],但 play-services-basement 版本是16.0.1。
以下依赖项是直接的或具有传递依赖项的项目依赖项,这些依赖项会导致存在问题的艺术 ifact。-- 项目“app”依赖于项目“firebase_auth”,该项目依赖于 com.google.firebase:firebase-auth@16.0.2——项目“app”依赖于项目“firebase_core”,该项目依赖于 com.google.firebase:firebase -core@16.0.4 -- 项目“app”依赖于项目“cloud_firestore”,该项目依赖于 com.google.firebase:firebase-firestore@17.1.1——项目“app”依赖于项目“google_sign_in”,该项目依赖于 com .google.android.gms:play-services-auth@16.0.1
对于扩展调试信息,使用 ./gradlew --info :app:assembleDebug 从命令行执行 Gradle 以查看工件的依赖路径。此错误消息来自 google-services Gradle 插件,在 https://github.com/google/play-services-plugins 报告问题并通过将“googleServices { disableVersionCheck = false }”添加到您的 build.gradle 文件来禁用。
#flutter_firebase_ui 有很多问题 #google 请雇用我,我可以帮助您的开发人员
解决方案
依赖配置
对于 gradle 问题,请确保您的 Android SDK 和 Firebase/Firestore 插件兼容,版本兼容。这对我有用:
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.2.0'
classpath 'com.google.firebase:firebase-auth:16.0.5'
}
在模块/应用程序中build.gradle
:
android {
compileSdkVersion 27
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.timeswap.timeswapcore"
minSdkVersion 17
targetSdkVersion 27
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
...
}
具体来说,请注意compileSdkVersion
、 、和targetSdkVersion
的版本号。摆弄这些数字最终让我找到了这个配置,它可能会帮助你找到合适的配置。google-services
firebase_auth
Firebase 或 Firestore 初始化
至于应用程序初始化,我有这个
Firestore firestore = Firestore.instance;
firestore.settings(timestampsInSnapshotsEnabled: true);
在 my_initFirestore
中,紧随其后被调用super.initState()
@override
void initState() {
super.initState();
_initFirestore();
checkCurrentUser();
}
Firebase(以及我使用过的所有其他 Firebase 插件)的初始化方式类似,但使用firebase_core:
依赖项而不是cloud_firestore:
in pubspec.yaml
。
例如,来自flutter/plugins/packages/firebase_storage
GitHub存储库:
void main() async {
final FirebaseApp app = await FirebaseApp.configure(
name: 'test',
options: FirebaseOptions(
googleAppID: Platform.isIOS
? '1:159623150305:ios:4a213ef3dbd8997b'
: '1:159623150305:android:ef48439a0cc0263d',
gcmSenderID: '159623150305',
apiKey: 'AIzaSyChk3KEG7QYrs4kQPLP1tjJNxBTbfCAdgg',
projectID: 'flutter-firebase-plugins',
),
);
final FirebaseStorage storage = FirebaseStorage(
app: app, storageBucket: 'gs://flutter-firebase-plugins.appspot.com');
runApp(MyApp(storage: storage));
}
您还可以使用这篇 Medium 文章作为开始使用 Flutter Firebase Auth UI 的指南。
为了将来参考,您可以导航到flutter/plugins/packages/{package name}
Github 并找到main.dart
里面的examples/lib
演示。随意利用它来解决您的依赖问题!
推荐阅读
- system-verilog - SystemVerilog 断言:一旦 A 被断言,A 将保持高电平直到 B 被取消断言,之后 A 将最终变为低电平
- scala - 优化一段使用地图动作的代码
- kubernetes - 我怎么能发现 pod 是由于内存不足而重新创建的
- android - 如何在 build.gradle 中使用不同的依赖项?
- node.js - 在我的在线服务器上部署我的 Messenger 聊天机器人
- android - 未显示使用 uri 作为源的图像
- c# - Docker for Windows & MS-Access 数据库 & Jet.OLEDB.4.0
- entity-framework - 获取由 linq 中的一个父表连接的两个子表的结果集合
- ios - 如何快速获取相册标题,图像计数?
- sizeof - pike 中 sizeof() 错误的参数 1 错误