猿问

根据来自不同集合的文档的存在,将文档添加到集合中

在 Firestore 上,我试图根据不同集合中另一个文档的存在将文档添加到一个集合中。例如,如果我的会话集合中存在某个会话,则可以将考勤记录添加到考勤集合中。这可以在 Cloud Firestore 上实现吗?


冉冉说
浏览 151回答 2
2回答

手掌心

您可以通过exists()在DocumentSnapshot对象上调用方法来检查特定文档是否存在于您的session集合中,从而在用户端解决此问题,如下所示:FirebaseFirestore rootRef = FirebaseFirestore.getInstance();DocumentReference docRef = rootRef.collection("session").document(docId);docRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {&nbsp; &nbsp; @Override&nbsp; &nbsp; public void onComplete(@NonNull Task<DocumentSnapshot> task) {&nbsp; &nbsp; &nbsp; &nbsp; if (task.isSuccessful()) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; DocumentSnapshot document = task.getResult();&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (document.exists()) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Add attendance record to the attendance collection&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Log.d(TAG, "No such document");&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }});为了 100% 确保您还可以使用安全规则,正如@Gerardo 在他的回答中提到的那样,您可以在其中再次使用exists()方法来查看会话集合中是否存在某个会话,并相应地拒绝该操作。
随时随地看视频慕课网APP

相关分类

Java
我要回答