我有一棵Firestore收集树,我打算在其中仅存储一个文档。我想检查该集合是否包含该文档,如果包含,请检索该文档的ID!有什么想法/想法吗?
谢谢:)
答案 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
}
}
});