gpt4 book ai didi

javascript - Firebase 查询示例返回无用的对象

转载 作者:行者123 更新时间:2023-11-30 14:10:11 24 4
gpt4 key购买 nike

我正在尝试使用查询从 firebase 文档中获取示例,但它似乎不起作用。我正在使用 Cloud Firestore。

这是我得到的结果:query result

var citiesRef = db.collection("cities");

citiesRef.doc("SF").set({
name: "San Francisco", state: "CA", country: "USA",
capital: false, population: 860000,
regions: ["west_coast", "norcal"] });
citiesRef.doc("LA").set({
name: "Los Angeles", state: "CA", country: "USA",
capital: false, population: 3900000,
regions: ["west_coast", "socal"] });
citiesRef.doc("DC").set({
name: "Washington, D.C.", state: null, country: "USA",
capital: true, population: 680000,
regions: ["east_coast"] });
citiesRef.doc("TOK").set({
name: "Tokyo", state: null, country: "Japan",
capital: true, population: 9000000,
regions: ["kanto", "honshu"] });
citiesRef.doc("BJ").set({
name: "Beijing", state: null, country: "China",
capital: true, population: 21500000,
regions: ["jingjinji", "hebei"] });


// Create a reference to the cities collection
var citiesRef = db.collection("cities");

// Create a query against the collection.
var query = citiesRef.where("state", "==", "CA");

console.log(query);

我希望记录一个代表包含指定值的文档的对象。但结果总是一样的(见附件),即使我搜索一个不存在的值。这是为什么?我希望有人可以解释这里发生了什么以及为什么文档中提供的示例不起作用...

最佳答案

这是因为,使用问题中的代码,您定义(和 console.log())一个 Query对象。

你实际上不应该直接使用这个对象,而是:

  • 调用get()执行查询并获取结果文档的方法(通过 QuerySnapshot );
  • QuerySnapshot 事件附加一个监听器,使用 onSnapshot()方法

  • 或者,使用其他方法优化此查询,例如 where()orderBy() 等...

您可以在此处找到完整的文档:https://firebase.google.com/docs/reference/js/firebase.firestore.Query

因此,更具体地说,对于您当前的代码,您应该执行如下操作:

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

query.get()
.then(snapshot => {
if (!snapshot.empty) {
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
});
} else {
console.log('No document corresponding to the query');
}
})
.catch(err => {
console.log('Error getting documents', err);
});

关于javascript - Firebase 查询示例返回无用的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54606737/

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