我正在尝试根据Firestore中的查询搜索的搜索结果来构成一个数组。
查询结果来自类似
的搜索 docRef.get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
var dataArray = doc.data();
var arrayOutputs = [dataArray];
var name = arrayOutputs[0].Name;
console.log(name);
});
});
将返回所有结果,其中显示三个结果,但是我试图将每个对象放入一个数组中。如果需要,分别拉出搜索结果,并将其用于“ for循环”。
谢谢
答案 0 :(得分:1)
OP代码在每次迭代中将arrayOutputs
分配给单个元素数组。要获取结果数组,请映射返回的文档,并从每个文档中获取data()
。
docRef.get().then(function(querySnapshot) {
let allDocData = querySnapshot.docs.map(doc => doc.data());
console.log(JSON.stringify(allDocData));
});
编辑:具有for循环而不是映射的想法...
docRef.get().then(function(querySnapshot) {
let allDocData = [];
querySnapshot.forEach(function(doc) {
allDocData.push(doc.data());
});
console.log(`we found ${allDocData.length} docs as follows...`);
console.log(JSON.stringify(allDocData));
});
答案 1 :(得分:0)
如果要将结果推入数组,请执行以下操作:
docRef.get().then(function(querySnapshot) {
var myArray = [];
querySnapshot.forEach(function(doc) {
myArray.push(doc.data());
});
});