
当用户在我的应用程序中检查他的朋友列表时,我希望该应用程序遍历列表中的每个用户并从Cloud Firestore检索他的最新信息.
这是我目前的代码:
final CollectionReference usersRef= FirebaseFirestore.getInstance().collection("users"); usersRef.document(loggedEmail).collection("frIEnds_List").get().addOnSuccessListener(new OnSuccessListener<querySnapshot>() { @OverrIDe public voID onSuccess(querySnapshot documentSnapshots) { if (!documentSnapshots.isEmpty()){ for (documentSnapshot frIEnddocument: documentSnapshots) { usersRef.document(frIEnddocument.getString("email")).get().addOnSuccessListener (new OnSuccessListener<documentSnapshot>() { @OverrIDe public voID onSuccess(documentSnapshot documentSnapshot) { User frIEnd=documentSnapshot.toObject(User.class); frIEndsList_UserList.add(frIEnd); } }); } ///... } else noFrIEndsFound(); }这是我想要的过程的一个例子:
正如您所看到的,我可以通过这种方式获取每个用户的信息,但是我找不到一种方法来监听此过程,并在我获得有关用户列表中所有朋友的信息时继续 *** 作.
这是我能够立刻获得所有朋友信息的方式吗?
解决方法:
Firestore不直接支持您要求的连接.
您可以使用querySnapshot中的getDocumentChanges构建一个链式侦听器,以跟踪您应该收听哪些朋友.
想象一下,如果你保留了这样的朋友监听器注册地图
Map<String, ListenerRegistration> frIEndListeners = new HashMap<>();然后你可以注册这样的东西:
usersRef.document(loggedEmail).collection("frIEnds_List") .addSnapshotListener(new EventListener<querySnapshot>() { @OverrIDe public voID onEvent(querySnapshot snapshot, FirebaseFirestoreException error) { for (documentChange change : snapshot.getdocumentChanges()) { documentSnapshot frIEnd = change.getdocument(); String frIEndID = frIEnd.getID(); ListenerRegistration registration; switch (change.getType()) { case ADDED: case MODIFIED: if (!frIEndListeners.containsKey(frIEndID)) { registration = usersRef.document(frIEndID).addSnapshotListener(null); frIEndListeners.put(frIEndID, registration); } break; case REMOVED: registration = frIEndListeners.get(frIEndID); if (registration != null) { registration.remove(); frIEndListeners.remove(frIEndID); } break; } } } });但请注意,这可能实际上并不是一个好主意.您可能最好将足够的信息下载到frIEnds_List文档中,一旦您真正深入了解该朋友的详细信息,您只需要加载实际的朋友用户文档.
总结以上是内存溢出为你收集整理的java – Cloud Firestore – 从多个位置获取文档全部内容,希望文章能够帮你解决java – Cloud Firestore – 从多个位置获取文档所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)