Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法将firestore搜索结果生成一个数组?_Javascript_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript 有没有办法将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

我正在尝试从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循环”


谢谢

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方法的示例。