【问题标题】:Check if a document exists检查文档是否存在
【发布时间】:2017-10-28 18:24:20
【问题描述】:

我想检查我的集合“用户”中是否存在文档,因为当我尝试此代码时,当文档不存在时(当没有文档具有正确值时)似乎没有输入 OnCompleteListener使用“user_uid”字段):

FirebaseFirestore db = FirebaseFirestore.getInstance();

db.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()) {

                                } else {
                                    Log.w(TAG, "Error getting documents.", task.getException());
                                }
                            }
                        });

当我有一个符合我的条件whereEqualTo("user_uid", user.getUid()) 的文档时,它正在工作。

那么,我如何检查是否存在字段"user_uid" == user.getUid() 的文档?

【问题讨论】:

    标签: android firebase google-cloud-firestore


    【解决方案1】:

    我复制了您的代码,并尝试使用limit(1) 实现OnCompleteListener。它在有结果和没有结果的两种情况下都对我有用。

    Firestore 有一种方法可以在执行任何操作之前通过检查是否isEmpty() 来检查是否没有结果。因为执行任何操作都会导致IndexOutOfBoundsException 大部分时间在getDocuments() 上进行迭代。

    例如:

    if (task.isSuccessful()) {
        boolean isEmpty = task.getResult().isEmpty();
    }
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2012-01-08
      • 1970-01-01
      • 2012-07-02
      • 2020-10-12
      • 2019-03-04
      • 1970-01-01
      • 2021-07-22
      • 2020-10-05
      • 2014-10-06
      相关资源
      最近更新 更多