我很担心将@Exclude
注释放在我不希望在Cloud Firestore数据库中使用的字段的位置。
仅将它放在getter方法上是否足够?它还有什么作用将它添加到setter方法或变量声明?
在我的示例中,我不想存储文档ID,因为这将是多余的:
public void loadNotes(View v) {
notebookRef.get()
.addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
@Override
public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
String data = "";
for (QueryDocumentSnapshot documentSnapshot : queryDocumentSnapshots) {
Note note = documentSnapshot.toObject(Note.class);
note.setDocumentId(documentSnapshot.getId());
String title = note.getTitle();
String description = note.getDescription();
data += "\nTitle: " + title + "Description: " + description;
}
textViewData.setText(data);
}
});
}
模特课:
public class Note {
private String documentId;
private String title;
private String description;
public Note() {
//public no arg constructor necessary
}
public Note(String title, String description) {
this.title = title;
this.description = description;
}
@Exclude
public String getDocumentId() {
return documentId;
}
public void setDocumentId(String documentId) {
this.documentId = documentId;
}
public String getTitle() {
return title;
}
public String getDescription() {
return description;
}
}
答案 0 :(得分:10)
由于您对private
类中的字段使用Note
修饰符,要从Cloud Firestore数据库中排除属性,您应将@Exclude
注释放在相应的getter之前。
@Exclude
public String getDocumentId() {return documentId;}
仅将它放在getter方法上是否足够?
是的,这就足够了。如果您对字段使用了public
修饰符,要忽略属性,您应该在属性之前放置@Exclude
注释:
@Exclude
public String documentId;
将它添加到setter方法或变量声明有什么影响?
没效果。