Firebaseui FirestoreRecyclerAdapter:如何使用 DocumentReference 指向的数据

Firebaseui FirestoreRecyclerAdapter: How to use data pointed to by DocumentReference

我的数据设置如下:
- 用户集合包含用户文档。
- 用户文档包含朋友子集合。
- Friends 子集合包含 UserRef 文档。
- UserRef 文档包含对用户文档的 DocumentReference。

我想使用 FirestoreRecyclerAdapter 在 RecyclerView 中显示特定用户的所有好友。从 开始,我似乎无法检索查询中 DocumentReference 指向的用户文档。因此,以下代码是我尝试使用 SnapshotParser 来执行此操作。但是,我不知道如何 return 来自 parseSnapshot() 的用户,因为它是异步检索的。

Query query = friendsSubcollection;

FirestoreRecyclerOptions<User> options = new FirestoreRecyclerOptions.Builder<User>()
        .setQuery(query, User.class, new SnapshotParser<User>() {
            @NonNull
            @Override
            public User parseSnapshot(@NonNull DocumentSnapshot snapshot) {
               DocumentReference userRef = snapshot.toObject(DocumentReference.class);
               userRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                            @Override
                            public void onSuccess(DocumentSnapshot documentSnapshot) {
                                User user = documentSnapshot.toObject(User.class); // How do I return this user from parseSnapshot()?
                            }
                        });
            }
        })
        .build();

您将无法执行此操作,因为 parseSnapshot 需要同步发生,但获取另一个文档是异步的。直到 parseSnapshot returns 之后,文档获取才会通过回调完成。因此,您将无法为此使用 Firebase UI - 您必须想出自己的方式来发出多个请求来填充 RecyclerView,这可能需要大量工作。