这是我的数据类:
import com.google.firebase.firestore.PropertyName
data class MHatchery(
@set:PropertyName("hName")
var hName:String,
val hLocation:String,
)
现在当我尝试输入值时,它给出了这个错误:
在 com 上找到二传手。. .***.models.MHatchery 具有无效的区分大小写的名称:setHName
我觉得很难理解,这个 setHName 是什么??为什么我收到这个错误?我正在使用的是hName
. 那这到底是怎么回事setHName
?请帮助我理解我哪里出错了?
我正在使用的 Firestore 版本:
// Import the Firebase BoM
implementation platform('com.google.firebase:firebase-bom:28.2.1')
//Firebase
implementation 'com.google.firebase:firebase-auth-ktx'
implementation 'com.google.firebase:firebase-core'
//Firebase Auth UI
implementation 'com.firebaseui:firebase-ui-auth:7.2.0'
//Firebase Database
implementation "com.google.firebase:firebase-database-ktx"
//FireStore
implementation 'com.google.firebase:firebase-firestore:23.0.2'
这是我的 gradle 依赖项
classpath "com.android.tools.build:gradle:4.2.2"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"
这是我的数据库截图。我希望 hname 像hName
. 这就是我尝试@PropertyName 注释的原因
您收到以下错误:
在 com 上找到二传手。. .***.models.MHatchery 具有无效的区分大小写的名称:setHName
因为你的MHatchery
类中的字段名称与数据库中的字段名称不同。例如,在您的班级中,您有一个名为 的属性hName
,其大写字母N
为 ,而在您的数据库中,该字段名为hname
,使用小写字母n
。为了能够将 Firestore 文档映射到 type 的对象,MHatchery
属性的名称必须匹配。
有两种方法可以解决此问题。第一个是更改类中字段的名称以匹配数据库中的字段。所以你应该改变:
var hName:String,
到:
var hname:String,
并删除注释:
//@set:PropertyName("hName")
或者您在属性前添加以下注释,如下所示:
@get:PropertyName("hName")
@set:PropertyName("hName")
var hName:String,
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句