Firestore @DocumentId不会在文档中创建字段(Java)

时间:2020-07-15 19:19:40

标签: java android firebase google-cloud-firestore

我正在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。还有其他解决方案吗?

1 个答案:

答案 0 :(得分:1)

@DocumentId不会将值存储在Firestore文档中,但是在使用documentSnapshot.toObject(Student.class)转换为对象时,将填充字段student.rollNum