在我的 Firestore 中,我有一个users
集合,其中的文档可以有一个bookmarks
字段,它是一个引用数组:
这些引用中的每一个都指向teachers
集合中的一个文档:
在我的 Android 应用程序中,我想创建一个方法getBookmarks,该方法返回一个ListPOJO,每个 POJO 代表一个老师。这是我编码的,但我认为有两个问题:
我无法将 a 返回List<TeacherPojo>到 my callback,因为我正在单独获取每个文档参考
我认为为集合中的每个项目附加一个回调(它的大小由用户控制,用户可以拥有他/她想要的任意数量的书签)可能会对性能产生很大的影响。
public void getBookmarks(@NonNull OnSuccessListener<List<TeacherPojo>> callback)
{
checkNotNull(callback);
// document reference points to the user document which is calling this method
documentReference.get()
.addOnSuccessListener((documentSnapshot) -> {
ArrayList<DocumentReference> teacherReferences = (ArrayList<DocumentReference>) documentSnapshot.get("bookmarks");
Iterables.forEach(teacherReferences, (documentReference) -> {
documentReference.get()
.addOnSuccessListener((teacherSnapshot) -> {
TeacherPojo teacherPojo = teacherSnapshot.toObject(TeacherPojo.class);
// now?
});
});
});
}
有没有更好的方法来编码这种方法,以获得List<TeacherPojo>(并且可能不会对性能产生太大影响)?
拉风的咖菲猫
相关分类