Zhy*_*ano 13 android firebase google-cloud-firestore
我有几个不应该转移到Firestore的属性,例如元数据("id"或"parent"),并且使用Firebase Realtime数据库,可以选择将它们设置为protected并使getter使它们可访问对外界而不是序列化到Firebase.
使用Firestore,阻止属性序列化的唯一选择是创建一个具有私有属性的类并对其进行扩展.但这并不是很有用,因为该属性甚至无法从类内部访问.
你能帮我找到一个解决方案来创建没有序列化到Firestore的类属性吗?(也许是注释?)
任何帮助是极大的赞赏!
Gri*_*orr 26
要将字段标记为从Firestore或Realtime数据库中排除,您可以使用@Exclude注释.例如:
@IgnoreExtraProperties
public class Model {
    @Exclude private String id;
    // ...
}
您还可以@IgnoreExtraProperties对该类使用注释来自动忽略不映射到类字段的属性.
对于Kotlin,您需要确保getter使用@Exclude注释而不是适当的字段对进行注释。您可以通过指定注释的目标来实现。例如:
data class Model(@get:Exclude val id: String)
@get指定@Exclude应将注释添加到值的getter。有关更多信息,请参见注释使用场所目标文档。
这也适用于数据类。
感谢@ mfulton26的回答/sf/answers/2808211101/。
格里姆索尔的答案对我不起作用。因此,我@Exclude在要排除写入Firestore db的字段的getter方法之前添加了注释,并且可以正常工作:
@Exclude
public String getId() {
    return id;
}
| 归档时间: | 
 | 
| 查看次数: | 4313 次 | 
| 最近记录: |