首页 > 解决方案 > @DocumentId 注释如何用于 Firestore 的字段?

问题描述

我目前正在使用带注释的 POJO 将 Firestore 文档集成到 Kotlin 应用程序中以提取数据。作为其中的一部分,我还需要文档的 ID。

我正在尝试使用此处描述的新 @DocumentId 符号来执行此操作...

但是在我的 POJO 类中无法识别注释(未解析的参考:DocumentId)

在我的 gradle 文件中,我有...

implementation 'com.google.firebase:firebase-firestore:21.2.1'

在我的模型课上,我...

data class DocumentModel(
    @DocumentId var id: String
    @PropertyName var field1: String
    ...etc...
)

其他注释工作正常,只是 DocumentId 一个不起作用。有人对我做错了什么有任何想法吗?

标签: androidfirebasekotlingoogle-cloud-firestore

解决方案


根据官方文件(https://firebase.google.com/docs/reference/android/com/google/firebase/firestore/DocumentId.html),

此注释应用于不可写的属性(例如,没有支持字段的 Java Bean getter)。

所以,你必须使用val而不是var.

data class DocumentModel(
    @DocumentId val id: String
    ...etc...
)

推荐阅读