添加 flutter firebase 身份验证后应用程序崩溃 ui

App crashed after adding flutter firebase auth ui

Flutter firebase auth UI 有一些问题,因为 firebase_auth 版本不匹配问题

我的 flutter 应用程序崩溃了,无法识别问题,在 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)

如何解决?

In project 'app' a resolved Google Play services library dependency depends on another at an exact version (e.g. "[15.0. 1]", but isn't being resolved to that version. Behavior exhibited by the library will be unknown.

Dependency failing: com.google.android.gms:play-services-flags:15.0.1 -> com.google.android.gms:play-services-basement@[ 15.0.1], but play-services-basement version was 16.0.1.

The following dependencies are project dependencies that are direct or have transitive dependencies that lead to the art ifact with the issue. -- Project 'app' depends on project 'firebase_auth' which depends onto com.google.firebase:firebase-auth@16.0.2 -- Project 'app' depends on project 'firebase_core' which depends onto com.google.firebase:firebase-core@16.0.4 -- Project 'app' depends on project 'cloud_firestore' which depends onto com.google.firebase:firebase-firestore@17.1.1 -- Project 'app' depends on project 'google_sign_in' which depends onto com.google.android.gms:play-services-auth@16.0.1

For extended debugging info execute Gradle from the command line with ./gradlew --info :app:assembleDebug to see the dep endency paths to the artifact. This error message came from the google-services Gradle plugin, report issues at https:// github.com/google/play-services-plugins and disable by adding "googleServices { disableVersionCheck = false }" to your b uild.gradle file.

#flutter_firebase_ui有很多问题#google请雇用我,我可以帮助您的开发人员

使用前需要先初始化FirebaseApp。您可以将它添加到您的 onCreate 方法中。

@Override
public void onCreate() {
    super.onCreate();
    FirebaseApp.initializeApp(this);
}

还要确保你的 build.gradle

中有依赖项
dependencies {
    ....
}

apply plugin: 'com.google.gms.google-services'

依赖配置

对于 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'
}

在module/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"
    }

...
}

具体注意compileSdkVersiontargetSdkVersion以及google-servicesfirebase_auth的版本号。摆弄这些数字最终使我找到了这个配置,它可能会帮助您找到合适的配置。

Firebase 或 Firestore 初始化

关于App初始化,我有这个

Firestore firestore = Firestore.instance;
firestore.settings(timestampsInSnapshotsEnabled: true);

在我的 _initFirestore 中,它在 super.initState()

之后被调用
@override
void initState() {
    super.initState();
    _initFirestore();
    checkCurrentUser();
}

Firebase(以及我使用过的所有其他 Firebase 插件)的初始化方式类似,但使用 firebase_core: 依赖项而不是 pubspec.yaml 中的 cloud_firestore:

例如,来自 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 作为开始使用 flutter Firebase Auth 的指南 UI。

为了将来参考,您可以导航到 Github 上的 flutter/plugins/packages/{package name},然后在 examples/lib 中找到 main.dart 进行演示。也可以随意利用它来解决您的依赖性问题!

我也遇到同样的问题,通过在 AndroidManifest.xml 中添加 Facebook 应用程序 ID 解决了 尝试 运行 Android app with Android studio 你会收到错误信息