Это будет довольно длинный вопрос, поэтому я добавлю TL; DR в конце.
Уже несколько дней я пытаюсь найти способ заставить свою настройку работать, но безуспешно. Теперь, чтобы сделать его полным и помочь другим, я буду записывать свои шаги здесь:
Встречайте эту ошибку:
Execution failed for task ':cloud_firestore:compileDebugJavaWithJavac'.android/app/src/main/AndroidManifest.xml. В моем случае это был com.omnisciamus.fire. Используйте его для создания нового приложения для Android в проекте Firebase вместе с ключом отладки.google-services.json в android/appandroid/build.gradle и android/app/build.gradle. Я изменил это на использование последних версий (модификации включены ниже).registerResGeneratingTask is deprecated, use registerGeneratedFolders(FileCollection)^ перед версиями).Изменения в android/build.gradle:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.0' // upgraded from 3.0.1
classpath 'com.google.gms:google-services:3.2.0' // added & upgraded from 3.1.1
}
}
А потом у нас есть android/app/build.gradle:
//bottom of file
apply plugin: 'com.google.gms.google-services'
Структура зависимостей моего pubspec выглядит так:
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.0
firebase_analytics: 0.3.0
cloud_firestore: 0.3.1
Для получения дополнительных сведений я добавил вывод команды flutter doctor -v:
[√] Flutter (Channel beta, v0.1.5, on Microsoft Windows [Version 10.0.16299.309], locale en-GB)
• Flutter version 0.1.5 at C:\Developer\Flutter\flutter
• Framework revision 3ea4d06340 (5 weeks ago), 2018-02-22 11:12:39 -0800
• Engine revision ead227f118
• Dart version 2.0.0-dev.28.0.flutter-0b4f01f759
[√] Android toolchain - develop for Android devices (Android SDK 27.0.0)
• Android SDK at C:\Android
• Android NDK at C:\Android\ndk-bundle
• Platform android-P, build-tools 27.0.0
• ANDROID_HOME = C:\Android
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)
[√] Android Studio (version 3.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)
[√] IntelliJ IDEA Ultimate Edition (version 2017.3)
• Flutter plugin version 22.2.2
• Dart plugin version 173.4548.30
[√] VS Code (version 1.21.1)
• VS Code at C:\Program Files\Microsoft VS Code
• Dart Code extension version 2.10.0
[√] Connected devices (1 available)
• Android SDK built for x86 • emulator-5554 • android-x86 • Android 6.0 (API 23) (emulator)
• No issues found!
Поскольку это может стать учебным пособием, я включу простую команду для получения ключа отладки (в Windows):
cd %JAVA_HOME%\bin & keytool -exportcert -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
Cloud_firestore вылетает с версией 0.3.x, как это исправить?
Обсуждая это с несколькими соавторами, я обнаружил, что одна из них нашла работающую установку: изменение версии cloud_firestore на версию ниже 0.3.0, например, 0.2.9. Согласно этот недавно опубликованный выпуск, проблема в том, что «стабильная» версия flutter не имеет определенных функций, которые использует cloud_firestore, что вызывает ошибки, которые вы видите при компиляции. Я обновлю вопрос через некоторое время, чтобы отразить этот ответ, если потребуется.
Это сработало для меня, а также для некоторых других разработчиков, но, возможно, некоторые другие вещи к настоящему времени изменились (возможно, в инструкциях)
Чтобы плагины Firebase работали со Swift, вам необходимо использовать более новые версии: но у меня также есть проблемы с Android. Я также пробовал переключить канал флаттера с бета-версии на dev.
dependencies:
flutter:
sdk: flutter
cloud_firestore: "^0.4.0"
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^0.1.0
dev_dependencies:
flutter_test:
sdk: flutter
image_picker: 0.4.1
#google_sign_in: '>=2.1.0 '
google_sign_in: '3.0.0'
#firebase_analytics: '>=0.2.3'
firebase_auth: '>=0.4.5'
#firebase_auth: '>=0.5.3' #not working on android
#firebase_database: '>=0.3.5' #works on android
firebase_database: '0.4.2' #works on android
#firebase_storage: '>=0.1.4' #not Working on android
#firebase_storage: '0.2.0' #not working on android
Я не могу проверить в данный момент (у меня нет Mac под рукой), но я проверю его на andoid, если вспомню завтра. С другой стороны, этот конкретный «вопрос» касался добавления хранилища огня, которое вы, похоже, не включили
Я решил свои текущие проблемы с Cloud_Firestore:
flutter channel master. Как предлагается здесь Cloud Firestore 0.3.2 - сбой при выполнении задачи ...cloud_firestore: "^0.4.0" даже cloud_firestore: "^0.3.2".Надеюсь, это поможет. Я часами пытался понять, почему я не могу скомпилировать приложение flutter с помощью cloud_firestore. Я знал, что проблема связана с версиями SDK flutter, но я не хотел переходить на альфа-версию. Но решение оказалось простым - использовать мастер-канал. Хотя пока не уверен, какие еще вопросы могут возникнуть в ближайшее время. Однако теперь я могу с радостью начать тестирование с облачным хранилищем огня. ;)
Да, я столкнулся с тем же решением, пытаясь исправить это (я тоже потратил дней), но хотел сначала найти решение, при котором мне, возможно, не пришлось ломать остальную часть флаттера, используя нестабильную версию
У меня также были похожие проблемы при использовании firebase во флаттере. Я решил это, используя эти зависимости в моем файле android / build.gradle и удалив любые другие существующие зависимости.
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'com.google.gms:google-services:3.2.1'
и использовал эту версию для firestore и google в pubspec.yaml
cloud_firestore: 0.7.3
И если у вас есть проблемы, связанные с версией, с любым другим продуктом Firebase, обратитесь к этому ссылка на сайт
Так сработало ли это решение? Я спрашиваю, потому что это решение не на 100% похоже на инструкции, которые я вижу в Интернете.