Flutter firebase auth UI有一些问题,因为firebase_auth版本错过匹配问题
我的扑腾应用程序崩溃,无法识别问题,在Android工作室打开后,我得到了问题,它在这里
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)
怎么解决这个?
在项目'app'中,已解决的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:[email protected] - 项目'app'取决于项目'firebase_core',它取决于com.google.firebase:firebase [email protected] - 项目'app'取决于项目'cloud_firestore',它取决于com.google.firebase:[email protected] - 项目'app'取决于项目'google_sign_in',这取决于com .google.android.gms:[email protected]
对于扩展调试信息,请使用./gradlew --info:app:assembleDebug从命令行执行Gradle,以查看工件的dep endency路径。此错误消息来自google-services Gradle插件,报告问题位于https:// github.com/google/play-services-plugins并通过将“googleServices {disableVersionCheck = false}”添加到您的b uild.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'
}
在模块/ app 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
进行演示。随意利用它来解决您的依赖问题!
您需要在使用之前初始化FirebaseApp
。您可以将其添加到onCreate
方法中。
@Override
public void onCreate() {
super.onCreate();
FirebaseApp.initializeApp(this);
}
还要确保你的build.gradle
具有依赖性
dependencies {
....
}
apply plugin: 'com.google.gms.google-services'
我也面临同样的问题,并通过在AndroidManifest.xml中添加Facebook应用程序ID解决了尝试使用Android studio运行Android应用程序,您将收到错误消息