我正在Java中的Android应用程序中使用Firebase SDK,并且希望将文档ID存储在文档中。例如,假设我有一个名为Student的类,我想将学生的卷号存储为文档ID以及字段rollNum;我不希望随机生成纸卷编号,我想输入纸卷编号,但是按照下面的代码,我无法这样做。
class Student {
@DocumentId private String rollNum;
private String name;
private String surname;
public String getRollNum() {
return rollNum;
}
public void setRollNum(String rollNum) {
this.rollNum = rollNum;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
}
我正在使用以下代码创建文档
Student data = new Student();
data.setName("Test");
data.setSurname("Test");
data.setRollNum("9999999");
db.collection("TestCollection").document("9999999").set(data);
即使调用data.setRollNum("9999999")
也不会在Firestore上设置该字段。在这种情况下应该怎么做?我知道一种解决方法将删除@DocumentId
。还有其他解决方案吗?
答案 0 :(得分:1)
@DocumentId
不会将值存储在Firestore文档中,但是在使用documentSnapshot.toObject(Student.class)
转换为对象时,将填充字段student.rollNum
。