如何检查Firestore中是否存在该字段?

时间:2019-10-01 08:03:36

标签: android firebase google-cloud-firestore

我正在检查称为attending的布尔字段是否存在,但是我不确定如何做到这一点。

是否有诸如.child().exists()之类的功能或我可以使用的类似功能?

firebaseFirestore.collection("Events")
    .document(ID)
    .collection("Users")
    .get()
    .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            if(task.isSuccessful()) {
                for(QueryDocumentSnapshot document: task.getResult()){
                    attending = document.getBoolean("attending");
                }
            }
        }
    });

3 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

  if(task.isSuccessful()){
    for(QueryDocumentSnapshot document: task.getResult()){
       if (document.exists()) {
          if(document.getBoolean("attending") != null){
             Log.d(TAG, "attending field exists");
          }
        }
      }
  }

来自docs

  

public boolean exists ()

     

返回   如果文档存在于此快照中,则为true。

答案 1 :(得分:0)

您现在所做的是正确的-您必须阅读文档并检查快照以查看该字段是否存在。没有比这更短的方法了。

答案 2 :(得分:0)

You can check firestore document exists using this,

CollectionReference mobileRef = db.collection("mobiles");
 await mobileRef.doc(id))
              .get().then((mobileDoc) async {
            if(mobileDoc.exists){
            print("Exists");
            }
        });