我在Flutter下的Firestore数据库有问题。我已经按照包安装文档中的说明完成了所有工作,调查了2-3个完成的公共应用程序,并尝试像其他人一样使用该包。我什至尝试实现本机Firestore初始化,因为我认为问题出在平台端,但应用程序仍然
java.lang.NullPointerException:不存在Firestore组件。
当我尝试使用Firestore实例时。
在project / build.gradle中,我设置
classpath'com.google.gms:google-services:4.0.1'
获取依赖项,并导入
'com.google.firebase:firebase-core:16.0.1'
'com.android.support:multidex:1.0.3'
我的应用程序文件夹中有google-service.json。
有人可以帮助我解决这个问题吗?我浪费了一天,却一无所获。 非常感谢!
答案 0 :(得分:2)
https://i.stack.imgur.com/ITWmu.png
检查一次,我的问题已解决
答案 1 :(得分:1)
好的,所以我想出了另一个问题。
我不知道我是否是唯一一个不认识的人,但是由于新的gradle更新,
classpath'com.google.gms:google-services:3.2.1'
已弃用。我真的不知道这是怎么回事,但这是导致Flutter无法正确获取实例并引发nullPointer异常的原因。 如果有人遇到相同的问题(调试控制台显示一些已弃用的警告),则应更改
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:3.2.1'
}
}
}
android / build.gradle中的行要
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath ('com.google.gms:google-services:3.2.1') {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
}
}
我真的不知道,为什么过时的依赖形式包含会导致这样的问题,但是这种变化对我有用,我希望它也能对其他人有所帮助。除此之外,我认为这不会造成浪费的一天,因为很多文档都应该包括针对开发人员的此修复程序。
答案 2 :(得分:1)
将cloud_functions软件包更新为0.4.0之后,我也遇到了同样的问题。我尝试了各种组合,并使此配置生效:
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
classpath 'com.google.gms:google-services:4.2.0'
}
请注意,根据official documentation,Flutter当前与Google服务插件3.2.1版兼容。我没有基于4.2.0的Google服务插件进行完整的测试。到目前为止,Firebase身份验证,云功能和Firestore都可以正常工作。
答案 3 :(得分:0)
将Google服务更改为com.google.gms:google-services:3.2.1
。尽管它是较旧的版本,但可以与所有最新的firebase扩展一起很好地工作。
答案 4 :(得分:0)
前几天,我开始研究Flutter Firebasebase实时数据库时遇到了这个问题。看起来这是抖动问题。在花费50分钟解决此问题后,此评论帮助我快速解决了该问题。
https://github.com/flutter/flutter/issues/28745#issuecomment-480651580