【问题标题】:How can the @DocumentId annotation be used fields for Firestore?@DocumentId 注释如何用于 Firestore 的字段?
【发布时间】:2019-10-31 16:48:03
【问题描述】:

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

我正在尝试使用 here 描述的新 @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 一个不起作用。有人对我做错了什么有任何想法吗?

【问题讨论】:

  • 你导入了吗?
  • 当我使用 import com.google.firebase.firestore.DocumentId 时尝试显示“未解析的引用”
  • 我没有问题。确保您已将 gradle 与您的项目同步。
  • 同步但没有变化。无效的缓存,重新启动,同步并且现在可以正常工作。谢谢@DougStevenson

标签: android firebase kotlin google-cloud-firestore


【解决方案1】:

根据官方文档(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...
)

【讨论】:

    猜你喜欢
    • 2020-11-05
    • 2021-01-08
    • 2019-10-03
    • 1970-01-01
    • 2015-04-25
    • 2021-05-24
    • 2017-06-19
    • 1970-01-01
    • 2020-11-22
    相关资源
    最近更新 更多