我正在尝试构建Firestore网络应用。我配置了数据库等...一切都正确。 但是我现在正尝试从Firebase中获取数据,将其存储在变量中(或用这些数据填充数组),然后对该变量进行计算,我将每30秒更新一次(我这样做是为了限制查询的次数)。
我可以毫无问题地访问并读取数据,但是我无法添加它们。我尝试将变量放在全局变量中,将其作为参数传递给函数,但没有任何效果。
这是我的代码:
userArray = [];
db.collection("scenario-name").get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
userArray.push(doc.id);
});
});
console.log(userArray);
但是我得到了这样的东西:
我还尝试了.push.apply,或者定义了一个函数并在其中传递userArray,或者甚至做了这种事情:
userArray = [];
db.collection("scenario-name").get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
apply(doc);
});
});
function apply(doc){
userArray.push(doc.id);
}
我可以存储用于查询整个文档的firestore查询并对其进行处理吗?还是应该对所有内容进行查询?如何存储在变量中?
谢谢!
答案 0 :(得分:0)
您的代码显示为直接从Firestore文档中粘贴的,因此我可以想象问题出在存储在Firestore中的数据或数据的结构。
Get all documents in a collection
db.collection("cities").get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
// doc.data() is never undefined for query doc snapshots
console.log(doc.id, " => ", doc.data());
});
});
您做对了,创建一个空的数组变量,然后迭代querySnapshot
,在每次迭代中推送文档的ID。使用.get()
验证从console.log
获得的收益。你应该很好。