web-dev-qa-db-fra.com

Quel est le meilleur moyen de vérifier si un enregistrement Firestore existe si son chemin est connu?

Avec un chemin Firestore donné, quel est le moyen le plus simple et le plus élégant de vérifier si cet enregistrement existe ou pas avant de créer un document observable et de s'y abonner?

5
David Haddad

En regardant cette question on dirait que .exists() peut toujours être utilisé comme avec la base de données Firebase standard. De plus, vous pouvez trouver plus de personnes parlant de cette question sur github ici

La documentation États 

var cityRef = db.collection('cities').doc('SF');

var getDoc = cityRef.get()
    .then(doc => {
        if (!doc.exists) {
            console.log('No such document!');
        } else {
            console.log('Document data:', doc.data());
        }
    })
    .catch(err => {
        console.log('Error getting document', err);
    });
10
DoesData

Vérifie ça :)

  var doc = firestore.collection('some_collection').doc('some_doc');
  doc.get().then((docData) => {
    if (docData.exists) {
      // document exists (online/offline)
    } else {
      // document does not exist (only on online)
    }
  }).catch((fail) => {
    // Either
    // 1. failed to read due to some reason such as permission denied ( online )
    // 2. failed because document does not exists on local storage ( offline )
  });
2
Rifat Haque Amit

J'ai rencontré le même problème récemment en utilisant Firebase Firestore et j'ai utilisé l'approche suivante pour le surmonter.

mDb.collection("Users").document(mAuth.getUid()).collection("tasks").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
        @Override
        public void onComplete(@NonNull Task<QuerySnapshot> task) {
            if (task.isSuccessful()) {
                if (task.getResult().isEmpty()){
                    Log.d("Test","Empty Data");
                }else{
                 //Documents Found . add your Business logic here
                }
            }
        }
    });

task.getResult (). isEmpty () fournit une solution qui, si des documents relatifs à notre requête était trouvé ou non

0
Usman Iqbal