检查Firestore集合中是否存在文档

时间:2018-11-16 06:20:28

标签: java android firebase google-cloud-firestore

我有一棵Firestore收集树,我打算在其中仅存储一个文档。我想检查该集合是否包含该文档,如果包含,请检索该文档的ID!有什么想法/想法吗?

谢谢:)

4 个答案:

答案 0 :(得分:6)

如果要根据特定文档的RequiredBean检查特定文档的存在,请使用以下代码行:

@Lazy
@Bean(name="customObject")
public CustomObject customObject() {
  log.info(requiredBeans.size());
}

如果没有文档ID,则需要使用查询并根据特定属性的值找到该文档,如下所示:

document id

答案 1 :(得分:1)

尝试这个。

FirebaseFirestore firestore = FirebaseFirestore.getInstance();
firestore.collection("users").whereEqualTo("user_uid", user.getUid())
    .limit(1).get()
    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                        @Override
                        public void onComplete(@NonNull Task<QuerySnapshot> task) {
                          if (task.isSuccessful()) {
                            boolean isEmpty = task.getResult().isEmpty();
                          }
                        }
                    });

答案 2 :(得分:0)

使文档结构像这样:

collectionName(Collection)-> documentId(Document)-> id = documentId(和其他字段)

现在进行查询:

FirebaseFirestore firestoreDatabase= FirebaseFirestore.getInstance();
firestoreDatabase.collection(COLLECTION_NAME)
            .whereEqualTo(DOCUMENT_ID, documentId)
            .get()
            .addOnCompleteListener(task -> {
                if (task.isSuccessful()) {
                    if (task.getResult().getDocuments().size() > 0)
                        // Here is your document with id
                }
            });

答案 3 :(得分:0)

DocumentReference docRef = db.collection("items").document("your_id");
            docRef.addSnapshotListener(new EventListener<DocumentSnapshot>() {
                @Override
                public void onEvent(DocumentSnapshot snap, FirestoreException fe) {
                    if (snap.exists()) {
                        //update
                    } else {
                        //Insert
                    }
                }

            });