有没有办法将Firestore搜索结果放入数组?

时间:2019-01-15 01:22:07

标签: 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].Name;

        console.log(name);

      });
    });

将返回所有结果,其中显示三个结果,但是我试图将每个对象放入一个数组中。如果需要,分别拉出搜索结果,并将其用于“ for循环”。

谢谢

2 个答案:

答案 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());
    });
});