Cloud Firestore 集合查询不起作用
Cloud Firestore collections queries not working
由于 Cloud Firestore 是新的,我在使用它时遇到了问题。
我必须获取所有 users 的 Collection 并遍历它。但它不起作用。
db.collection("users").get().then(function(querySnapshot){
console.log(querySnapshot.data());
});
它说:
querySnapshot.data is not a function
以及以下代码:
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 Do Not Exist In DB
即使存在,参考下图。
我认为您对一些事情感到困惑,因为 querySnapshot 没有 data
,但它确实有 docs
,其中有数据。
在您的第一个示例中,您要求它 return 集合中的所有文档。你会想要这样的东西:
db.collection("users").get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
console.log(doc.id, " => ", doc.data());
});
});
主要区别在于遍历 querySnapshot
中的文档和控制台记录来自每个文档的数据。
对于第二个示例,您需要检查 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);
});
由于 Cloud Firestore 是新的,我在使用它时遇到了问题。
我必须获取所有 users 的 Collection 并遍历它。但它不起作用。
db.collection("users").get().then(function(querySnapshot){
console.log(querySnapshot.data());
});
它说:
querySnapshot.data is not a function
以及以下代码:
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 Do Not Exist In DB
即使存在,参考下图。
我认为您对一些事情感到困惑,因为 querySnapshot 没有 data
,但它确实有 docs
,其中有数据。
在您的第一个示例中,您要求它 return 集合中的所有文档。你会想要这样的东西:
db.collection("users").get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
console.log(doc.id, " => ", doc.data());
});
});
主要区别在于遍历 querySnapshot
中的文档和控制台记录来自每个文档的数据。
对于第二个示例,您需要检查 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);
});