Flutter Firebase身份验证UI出现问题,因为firebase_auth版本缺少匹配问题
我的flutter应用崩溃了,无法识别问题,在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。
以下依赖项是直接或直接的项目依赖项 具有传递依赖,从而导致与 问题。 -项目“ app”取决于项目“ firebase_auth”,该项目取决于com.google.firebase:firebase-auth@16.0.2 -项目“应用”取决于项目“ firebase_core”,而项目“ 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
有关扩展调试信息,请从命令行使用以下命令执行Gradle ./gradlew --info:app:assembleDebug以查看到的dep endency路径 神器。此错误消息来自google-services Gradle 插件,在https://上报告问题 github.com/google/play-services-plugins并通过添加禁用 “ googleServices {disableVersionCheck = false}”到您的build.gradle 文件。
#flutter_firebase_ui有很多问题#google请雇用我,我可以帮助您的开发人员
答案 0 :(得分:1)
对于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
。摆弄这些数字最终导致我进行此配置,这可能有助于您找到合适的配置。
关于App初始化,我有这个
Firestore firestore = Firestore.instance;
firestore.settings(timestampsInSnapshotsEnabled: true);
在我的_initFirestore
中,在super.initState()
之后被调用
@override
void initState() {
super.initState();
_initFirestore();
checkCurrentUser();
}
Firebase(以及我使用过的所有其他Firebase插件)的初始化方式类似,但是具有firebase_core:
依赖性,而不是cloud_firestore:
中的pubspec.yaml
。
例如,来自flutter/plugins/packages/firebase_storage
GitHub repo:
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));
}
您还可以使用this Medium post作为入门指南,以快速掌握Firebase Auth UI。
为将来参考,您可以导航到Github上的flutter/plugins/packages/{package name}
并在main.dart
内找到examples/lib
进行演示。随时利用它来解决您的依赖问题!
答案 1 :(得分:0)
使用FirebaseApp
之前,需要对其进行初始化。您可以将其添加到您的onCreate
方法中。
@Override
public void onCreate() {
super.onCreate();
FirebaseApp.initializeApp(this);
}
还要确保您的build.gradle
中有依赖项
dependencies {
....
}
apply plugin: 'com.google.gms.google-services'
答案 2 :(得分:0)
我也面临同样的问题,并通过在AndroidManifest.xml中添加Facebook应用ID来解决 尝试在Android Studio上运行Android应用,您会收到错误消息