Firestore @PropertyName 注释给出奇怪的错误?

Shijilal

这是我的数据类:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章