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

标签 java android firebase google-cloud-firestore

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

谢谢:)

最佳答案

如果您想根据文档id检查特定文档是否存在,请使用以下代码行:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
DocumentReference docIdRef = rootRef.collection("yourCollection").document(docId);
docIdRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
    @Override
    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
        if (task.isSuccessful()) {
            DocumentSnapshot document = task.getResult();
            if (document.exists()) {
                Log.d(TAG, "Document exists!");
            } else {
                Log.d(TAG, "Document does not exist!");
            }
        } else {
            Log.d(TAG, "Failed with: ", task.getException());
        }
    }
});

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

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference yourCollRef = rootRef.collection("yourCollection");
Query query = yourCollRef.whereEqualTo("yourPropery", "yourValue");
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (QueryDocumentSnapshot document : task.getResult()) {
                Log.d(TAG, document.getId() + " => " + document.getData());
            }
        } else {
            Log.d(TAG, "Error getting documents: ", task.getException());
        }
    }
});

关于java - 检查文档是否存在于 Firestore 集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53332471/

相关文章:

Android 7.x (API24) WEEK_OF_MONTH 日历错误?

python - 使用 Python 将数据发布到 Firebase

java - 我的 onChildAdded() 在使用 Firebase Push() 时有效,但在更新时无效

java - 两个单选组,每个单选组中仅选择一个单选按钮

java - 将应用程序从 tomcat 移植到 glassfish

android - 如何解决Android Studio中这种类型的gradle错误?

firebase - flutter 和 Firebase : Remove Item(Map) from Array in firebase

java - 声明某些对象时使用接口(interface)而不是类

java - 如何设置并锁定JScrollpane到底部?

android - 如何使用样式全局更改 AlertDialog 上的按钮文本颜色?