Приложение упало после добавления пользовательского интерфейса - PullRequest
0 голосов
/ 14 декабря 2018

Пользовательский интерфейс Flutter firebase auth имеет некоторую проблему из-за ошибки совпадения версий firebase_auth

Мое приложение flutter упало и не смог определить проблему, после открытия в андроид-студии я получил проблему, и она здесь

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.

Следующие зависимости являются проектными зависимостями, которые являются прямыми или имеют транзитивные зависимости.которые приводят к художественному действию с этой проблемой. - «Приложение» проекта зависит от проекта «firebase_auth», который зависит от com.google.firebase: firebase-auth@16.0.2 - «приложение» проекта зависит от проекта«firebase_core», который зависит от com.google.firebase: firebase-core@16.0.4 - «Приложение» проекта зависит от проекта «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: assemblyDebug, чтобы увидеть пути отсылки к артефакту.Это сообщение об ошибке поступило от подключаемого модуля google-services Gradle, сообщает о проблемах по адресу https: // github.com/google/play-services-plugins и отключает его, добавив googleServices {disableVersionCheck = false} в файл b uild.gradle.

# flutter_firebase_ui есть много проблем #google, пожалуйста, наймите меня, я могу помочь вашим разработчикам

Ответы [ 3 ]

0 голосов
/ 16 декабря 2018

Конфигурация зависимостей

При возникновении проблемы с совместимостью убедитесь, что ваши плагины 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);

в моем _initFirestore, который вызывается сразу после super.initState()

@override
void initState() {
    super.initState();
    _initFirestore();
    checkCurrentUser();
}

Firebase (и всех других плагинов Firebase, которые я использовал) инициализируется аналогично, но с firebase_core: зависимость вместо cloud_firestore: в 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));
}

Вы также можете использовать этот средний пост в качестве руководства для начала работы с пользовательским интерфейсом Firebase Auth.

Для дальнейшего использования вы можете перейти к flutter/plugins/packages/{package name} на Github и найти main.dart внутри examples/lib длядемоНе стесняйтесь использовать это, чтобы решить и вашу проблему зависимости!

0 голосов
/ 08 марта 2019

Я также столкнулся с той же проблемой и решил ее, добавив идентификатор приложения Facebook в AndroidManifest.xml. Попробуйте запустить приложение Android с Android studio, и вы получите сообщение об ошибке

0 голосов
/ 14 декабря 2018

Вам необходимо инициализировать FirebaseApp перед его использованием.Вы можете добавить его к своему onCreate методу.

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

Также убедитесь, что у вас есть зависимость в вашем build.gradle

dependencies {
    ....
}

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