2017-10-06 5 views
2

Da Cloud Firestore ist neu, habe ich Probleme bei der Verwendung.Cloud Firestore Sammlungen Abfragen funktioniert nicht

Ich muss Sammlung von allen Benutzer bekommen und es durchlaufen. Aber es funktioniert nicht.

db.collection("users").get().then(function(querySnapshot){ 
     console.log(querySnapshot.data()); 
}); 

Dort heißt es:

querySnapshot.data ist keine Funktion

Und folgenden Code:

callFireBase(mobileToCheck){ 
     db.collection("users").where("mobile_no", '==', mobileToCheck).get().then(function(querySnapshot){ 
      if (querySnapshot.exists) { 
       var userData = querySnapshot.data(); 
       var userId = querySnapshot.id; 
       console.log(mobileToCheck + "Exist In DB"); 
      }else{ 
       console.log(mobileToCheck + "Do Not Exist In DB"); 
      } 
     }); 
} 

immer

Der Druck wird

923.052.273.575 existieren nicht in DB

Auch wenn es vorhanden ist, siehe Referenz folgendes Bild.

enter image description here

Antwort

4

Ich denke, einige Dinge verwirrt als querySnapshot nicht data hat, aber es hat docs haben, die Daten haben.

In Ihrem ersten Beispiel werden Sie aufgefordert, alle Dokumente in der Sammlung zurückzugeben. Sie werden so etwas wie dieses stattdessen wollen:

db.collection("users").get().then(function(querySnapshot) { 
    querySnapshot.forEach(function(doc) { 
     console.log(doc.id, " => ", doc.data()); 
    }); 
}); 

Key Unterschied ist in querySnapshot und Konsole Protokollierung der Daten von jedem Dokument über die Dokumentation Looping.

Für Ihr zweites Beispiel möchten Sie überprüfen, ob die querySnapshot leer ist, anstatt zu prüfen, ob es existiert.

db.collection("users").where("mobile_no", "==", mobileToCheck) 
.get() 
.then(function(querySnapshot) { 
    if (querySnapshot.exists) { 
     querySnapshot.forEach(function(doc) { 
      console.log(doc.id, " => ", doc.data()); 
      var userData = doc.data() 
      var userId = doc.id 
      console.log(mobileToCheck + "Exist In DB"); 
     }); 
    } else { 
     console.log(mobileToCheck + "Do Not Exist In DB"); 
    }; 
}) 
.catch(function(error) { 
    console.log("Error getting documents: ", error); 
}); 
+0

Danke, hat gut funktioniert :) –

Verwandte Themen