【问题标题】:Firestore @DocumentId does not create a field in the document (Java)Firestore @DocumentId 不在文档中创建字段(Java)
【发布时间】:2020-11-05 09:24:30
【问题描述】:

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

【问题讨论】:

    标签: java android firebase google-cloud-firestore


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-08
      • 2020-01-05
      • 2020-10-01
      • 1970-01-01
      • 2018-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多