Javascript 有没有办法将firestore搜索结果生成一个数组?
我正在尝试从firestore中的查询搜索结果生成一个数组 来自以下内容的查询搜索的结果Javascript 有没有办法将firestore搜索结果生成一个数组?,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我正在尝试从firestore中的查询搜索结果生成一个数组 来自以下内容的查询搜索的结果 docRef.get().then(function(querySnapshot) { querySnapshot.forEach(function(doc) { var dataArray = doc.data(); var arrayOutputs = [dataArray]; var name = arrayOutputs[0].N
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循环”
谢谢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));
});
如果要将结果推送到数组,请执行以下操作:
docRef.get().then(function(querySnapshot) {
var myArray = [];
querySnapshot.forEach(function(doc) {
myArray.push(doc.data());
});
});
那么,
arrayOutputs
是三个返回结果吗?如果是的话,你到底想用它们做什么?目前有点不清楚。是的,arrayOutputs
是三个返回结果,我想从搜索中提取数据,并将其放入html元素中,生成显示的信息卡。到底什么不起作用?如果要获取的每个文档都是dataArray
,只需将它们添加到一个数组中,或者在forEach
函数中执行UI,否?它可以工作,但当我尝试执行for循环时,当我尝试执行allDocData.length
@jafferabyansy时,它无法识别为数组,你的for循环很有可能出错。我编辑了一个使用查询快照的forEach方法的示例。