Firebase Firestore,获取另一个文档内的引用文档

10 浏览
0 Comments

Firebase Firestore,获取另一个文档内的引用文档

我在使用Firebase Cloud Firestore,我想当我获取包含参考字段的文档时,接收参考字段作为文档而不是作为对文档的引用...

我有一个用户集合和一个课程集合(在学校),每个课程包含对用户的参考列表(这个班级中的学生)。

当我使用document.get()(通过其参考获取课程)时,它返回一个包含DocumentReference列表(用户)的对象,因此我需要调用document.get() 大约20次才能将用户作为对象而不是参考获取到它们。

我希望能够调用document.get()一次,它将把所有参考作为文档带给我,就像这样:

数据库代码

有没有一种优雅的方法可以做到这一点?

admin 更改状态以发布 2023年5月21日
0
0 Comments

你可以从一个集合中获取多个文档。请从文档中阅读“获取多个文档”部分 (Get multiple documents section from documentation)

这里是一个示例

db.collection("classes")
    .document(idOfTheClassYouWantToGet)
    .collection("users")
    .get()
    .addOnCompleteListener(new OnCompleteListener(){
        @Override
        public void onComplete(@NonNull Task task) {
            if (task.isSuccessful()) {
                for (DocumentSnapshot document : task.getResult()) {
                    User user = document.toObject(Users.class);
               }
            } 
        }
    });

0
0 Comments

你不能指示Firestore客户端SDK在获取单个文档时自动跟随文档引用。你必须请求每个单独的文档。换句话说,在SQL中没有像你想象的那样的“连接”操作。

参见:firestore引用数据类型有什么好处?

0