我创建了一个Firestore数据库,其中包含名为“Courses”的用户定义类的对象作为其文档。现在,我想在事务中读取这些文档及其文档ID的列表。我可以将这些文档存储在一个列表中,但我不知道如何检索这些文档的文档ID。据我所知,在Firestore数据库上操作的事务在使用get方法读取该数据库时返回文档快照。我想从这个文档快照中提取这些文档的文档ID,但我不知道如何做到这一点。
下面是我的数据库的图片。
enter image description here
下面是我的用户定义类“课程”的android studio java代码。
import com.google.firebase.firestore.Exclude;
import java.io.Serializable;
public class Courses implements Serializable {
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Exclude
private String id;
private String courseName, courseDescription, courseDuration;
public Courses() {
}
.
public Courses(String courseName, String courseDescription, String courseDuration) {
this.courseName = courseName;
this.courseDescription = courseDescription;
this.courseDuration = courseDuration;
}
public String getCourseName() {
return courseName;
}
public void setCourseName(String courseName) {
this.courseName = courseName;
}
public String getCourseDescription() {
return courseDescription;
}
public void setCourseDescription(String courseDescription) {
this.courseDescription = courseDescription;
}
public String getCourseDuration() {
return courseDuration;
}
public void setCourseDuration(String courseDuration) {
this.courseDuration = courseDuration;
}
}
我尝试用java编写以下代码,以列表的形式存储firestore数据库中的文档:
documentSnapshot doclist.get(document1); List courses1 = doclist.toObject(Courses.class);
但是我不知道如何从上面的“courses 1”列表中获取文档ID。
2条答案
按热度按时间nx7onnlm1#
您可以使用
document.getId()
获取文档ID。您必须遍历查询中的每个文档,获取其文档ID并将其保存回courses
数据对象中。在firebase docs上阅读更多。nhaq1z212#
只能在FirebaseFirestore对象上运行事务。因为你没有分享你的代码,我想它看起来像这样:
上面的代码将读取事务中的“usk.O18”文档,它将读取事务中的文档ID,并将更新
id
字段的值。我不确定为什么需要文档ID,因为您已经知道该ID,因为在创建指向该文档的引用时会使用它。