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

时间:2018-01-06 15:29:10

标签: android firebase google-cloud-firestore

我正在使用{% for p in pubs %} {{ p.city.city_name}} # p.city has been populated in the initial query # ... {% endfor %} ,我希望当我收到一个带有引用字段的文档时,将该引用字段作为文档接收而不是作为对该文档的引用...

我有一组用户和课程集合(在学校),每个课程都包含一个对用户(本课程的学生)的引用列表。 当我使用Firebase Cloud Firestore(通过引用获取类)时,它返回一个包含document.get()(用户)列表的对象,因此我需要再调用DocumentReference 20次左右只是为了让用户成为对象,而不是作为对象的引用。

我希望能够拨打document.get()一次,它会将所有引用作为文档提供给我: databasecode

有优雅的方法吗?

2 个答案:

答案 0 :(得分:2)

在获取单个文档期间,您无法指示Firestore客户端SDK自动跟踪文档引用。您必须要求每个单独的文件。换句话说,没有像SQL中那样的“连接”操作。

另请参阅:What is firestore Reference data type good for?

答案 1 :(得分:0)

您可以从集合中获取多个文档。 Read get mutiple documents section from documentation

这是一个例子

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