gpt4 book ai didi

firebase - 如何在 Firebase Cloud Firestore 中执行查询

转载 作者:行者123 更新时间:2023-12-05 08:41:53 24 4
gpt4 key购买 nike

我遵循了文档 here关于如何编写查询,但我没有从中获取任何数据。数据库中已经填充了文档提供的示例

下面是我的代码

var db = firebase.firestore();

var citiesRef = db.collection("cities");
var query = citiesRef.where("state", "==", "CA");

query.get().then(function(doc) {
if (doc.exists) {
console.log("Document data:", doc.data());
} else {
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});

如果我不对其进行任何查询,它就可以正常工作。例如(也来自文档):

var docRef = db.collection("cities").doc("SF");

docRef.get().then(function(doc) {
if (doc.exists) {
console.log("Document data:", doc.data());
} else {
console.log("No such document!");
}
}).catch(function(error) {
console.log("Error getting document:", error);
});

最佳答案

您的两个请求的不同之处在于,在第二种情况下,您正在检索一个文档,该文档为您提供 DocumentSnapshot它具有 exists 属性和 data() 方法。

在你不工作的例子中,你做了一个查询,它给你一个 QuerySnapshot必须以不同于 DocumentSnapshot 的方式处理。您得到的不是单个文档,而是文档列表/集合。您可以使用 emptysize 属性检查是否已检索到数据,然后使用 forEach 方法或通过docs 数组:

var db = firebase.firestore();

var citiesRef = db.collection("cities");
var query = citiesRef.where("state", "==", "CA");

query.get().then(function(results) {
if(results.empty) {
console.log("No documents found!");
} else {
// go through all results
results.forEach(function (doc) {
console.log("Document data:", doc.data());
});

// or if you only want the first result you can also do something like this:
console.log("Document data:", results.docs[0].data());
}
}).catch(function(error) {
console.log("Error getting documents:", error);
});

关于firebase - 如何在 Firebase Cloud Firestore 中执行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46643530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com