是否可以检查集合或子集合是否存在?

时间:2017-12-27 19:40:50

标签: javascript node.js firebase google-cloud-firestore

有没有办法检查firejs的firestore中是否存在子集合?

目前我正在使用doc.exists来处理文档,但是我需要检查文档中是否存在子列,以便写入一些数据。

4 个答案:

答案 0 :(得分:8)

是的,有。您可以使用docs.length来了解子集合是否存在。

我做了一个样本来指导你,希望它有所帮助。

data <- data.frame(Age1 = round(runif(100)*100,0))

data%>%
mutate(Age2 = ifelse(between(Age1, 25, 50), "25 - 50 Years", 
              ifelse(between(Age1, 51, 100),"51 - 100 Years", "Less than 25 years old")))

答案 1 :(得分:7)

马特乌斯&#39;答案没有帮助我。可能它已经改变了。

.collection(..).get()返回QuerySnapshot,其中包含size属性,所以我刚刚做了:

admin.firestore.collection('users').doc('uid').collection('sub-collection').get()
    .then(query => query.size);

答案 2 :(得分:0)

更准确地说:

const querySnapshot = admin.firestore().collection('users').doc('uid').collection('sub-collection').limit(1).get()
if (querySnapshot.empty) {console.log('sub-collection not existed')}

答案 3 :(得分:0)

这是我如何能够检查集合是否存在?

我先定位文档路径,然后如果它存在,这意味着之后集合存在并且我可以访问它。

<块引用>
>  db.collection("collection_name").document("doc_name").get()
>        .addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
>                     @Override
>                     public void onComplete(@NonNull Task<DocumentSnapshot> task) {
>                         if(task.isSuccessful()){
>                             DocumentSnapshot result = task.getResult();
>                             if(result.exists()){
>                                *//this means the document exist first, hence the 
>                                 //collection afterwards the doc_name will 
>                                 //exist...now I can access the collection*  
> db.collection("collection_name").document("doc_name").collection("collection_name2").get()
> .addOnCompleteListener(task1 -> {    if(task1.isSuccessful()){
>       ...
>     } }); } } });