Cloud Firestoreは新しいため、使用に問題があります。
すべてのusersのCollectionを取得してトラバースする必要があります。しかし、それは機能していません。
db.collection("users").get().then(function(querySnapshot){
console.log(querySnapshot.data());
});
それは言う:
querySnapshot.dataは関数ではありません
そして次のコード:
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");
}
});
}
常に印刷しています
923052273575 DBに存在しない
存在する場合でも、以下の画像を参照してください。
QuerySnapshotにはdata
がありませんが、データがあるdocs
があるので、混乱していると思います。
最初の例では、コレクション内のすべてのドキュメントを返すように要求しています。代わりに、次のようなものが必要になります。
db.collection("users").get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
console.log(doc.id, " => ", doc.data());
});
});
主な違いは、querySnapshot
のドキュメントと、各ドキュメントのデータを記録するコンソールです。
2番目の例では、querySnapshot
が存在するかどうかを確認するのではなく、空かどうかを確認します。
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);
});