添加云Firestore&;Firebase到Flatter项目(Android)
这将是一个相当长的问题,所以我将包括一个TL;最后是博士 几天来,我一直在试图找到一种方法,使我的设置工作,但无济于事。现在,为了使其完整并对其他人有所帮助,我将在这里记录我的步骤: 复制步骤添加云Firestore&;Firebase到Flatter项目(Android),android,android-studio,gradle,dart,flutter,Android,Android Studio,Gradle,Dart,Flutter,这将是一个相当长的问题,所以我将包括一个TL;最后是博士 几天来,我一直在试图找到一种方法,使我的设置工作,但无济于事。现在,为了使其完整并对其他人有所帮助,我将在这里记录我的步骤: 复制步骤 创建一个新的颤振项目(编译并运行时没有任何警告) 创建新的Firebase控制台项目 按照以下步骤将Firebase添加到android(在版本更改的情况下也包括在下面) 将Cloud Firestore添加到pubspec.yaml中的项目 遇到此错误: 出了什么问题: 任务的执行失败:cloud\u
- 出了什么问题: 任务的执行失败:cloud\u firestore:CompiledBugJavaWithJavaC。
com.omnisciamus.fire
。使用它在Firebase项目中创建一个新的android应用程序以及一个调试键googleservices.json
放到android/app
android/build.gradle
和android/app/build.gradle
。我已将此更改为使用最新版本(包括以下修改)registerResGeneratingTask已弃用,请使用registerGeneratedFolders(FileCollection)
^
)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
}
}
//bottom of file
apply plugin: 'com.google.gms.google-services'
然后我们有了android/app/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
}
}
//bottom of file
apply plugin: 'com.google.gms.google-services'
公共规范
my pubspec的依赖项结构如下所示:
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.0
firebase_analytics: 0.3.0
cloud_firestore: 0.3.1
设置详细信息
有关更多详细信息,我已将颤振医生-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\u HOME%\bin&keytool-exportcert-list-v-alias androiddebugkey-keystore%USERPROFILE%\.android\debug.keystore
TL;博士
Cloud\u firestore在0.3.x版本时崩溃,您如何解决此问题?当我与几个共同开发人员讨论此问题时,我发现有人找到了一个工作设置:将
Cloud\u firestore
的版本更改为低于0.3.0
,例如0.2.9
。据介绍,问题在于flutter的“稳定”版本没有cloud_firestore使用的某些功能,这会导致编译时出现错误。如果有人要求,我会在一段时间内更新这个问题,以反映这个答案。要让Firebase插件与Swift配合使用,您需要使用更新的版本:但我也有android问题。我还尝试将颤振通道从beta切换到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
我通过以下方式解决了当前的Cloud\u Firestore问题:
- 将颤振通道从beta更改为master。只需在终端
。正如这里提议的那样颤振通道主机中运行
- 处理颤振依赖项:
偶数cloud\u firestore:“^0.4.0”
cloud\u firestore:“^0.3.2”
希望这会有所帮助。我花了几个小时试图弄明白为什么我不能用cloud_firestore编译我的Flitter应用程序。我知道问题出在FlitterSDK版本上,但我不想选择alpha。但解决方案却变得和使用主通道一样简单。不过,目前还不确定在不久的将来还会出现哪些其他问题。不过现在,我可以很高兴地开始使用CloudFireStore进行测试了 在《颤振》中使用firebase时,我也遇到了类似的问题。我通过在我的android/build.gradle文件中使用这个依赖项解决了这个问题,并删除了任何其他现有的依赖项
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'com.google.gms:google-services:3.2.1'
并在pubspec.yaml中将此版本用于firestore和google
cloud_firestore: 0.7.3
如果您有任何其他firebase产品的版本相关问题,请参阅此,那么此解决方案有效吗?我之所以这么问,是因为这个解决方案看起来与我在网上看到的说明不完全一样。它确实对我和其他一些开发人员都有效,但也许现在(在说明中)有些事情已经改变了(也许)我现在无法验证(手头没有mac),但如果我明天还记得的话,我会为andoid验证它。另一方面,这个特定的“问题”是关于添加firestore的,你似乎没有包括在内。是的,我在尝试修复这个问题时遇到了相同的解决方案,(我也花了几天时间),但我想首先找到一个解决方案,在这个解决方案中,我不可能通过使用不稳定的版本来破坏flutter的其余部分