如何检查集合在Firestore中是否存在?

时间:2018-08-14 09:42:09

标签: angular firebase google-cloud-firestore

如何检查Firestore中是否存在集合?

有一种检查文档是否存在的方法。如:

this.afs.doc('users/' + userId).ref.get().then((doc) => {
    if (doc.exists) {
        console.log("User alread exists")
    } else {
        console.log("User first login")
    }
}).catch(function (error) {
    console.log("Error getting document:", error);
});

但是我找不到检查集合的方法。  就我而言,我不知道是否存在任何文档。所以,我不能使用

this.afs.doc

获取文档。我想检查根集合的存在。

1 个答案:

答案 0 :(得分:0)

“重复”页面中显示的解决方案有效。

如果您想知道一个集合是否为空,则必须对该集合运行查询,获取文档快照,然后检查快照是否为空。

假设您有一个称为引用的CollectionReference;

首先在参考上运行集合查询并检索快照-无论快照是否存在,此方法都会产生结果:

reference.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
                 @Override
                 public void onSuccess(QuerySnapshot queryDocumentSnapshots) {
                    if(queryDocumentSnapshots.isEmpty()){

                        Toast.makeText(getActivity(), "Collection is Empty", 
                        Toast.LENGTH_LONG).show();
                    }
                }
            });