首页 > 解决方案 > 从服务器获取json数据后尝试将json数据呈现给客户端,但只显示第一个元素

问题描述

相关功能

app.get('/api/profiles', (req, res) => {
    let citiesRef = db.collection('profiles');
    let allCities = citiesRef.get()
      .then(snapshot => {
        snapshot.forEach(doc => {
          res.send(doc.id+ '=>'+ doc.data());
        });
      })
      .catch(err => {
        console.log('Error getting documents', err);
      });
});

预期结果 :

0wlyCuWKaZdM1G9fnT2N=>{"lastName":"Japan","email":"Tokyo@japan.com","userName":"Tokyo"} mrlVDOpV8xQphsdlKdr4=>{"lastName":"Japan","email":"Tokyo @japan.com","用户名":"东京"}

实际结果:

0wlyCuWKaZdM1G9fnT2N=>{"email":"Tokyo@japan.com","userName":"Tokyo","lastName":"Japan"}

标签: node.jsjsonfirebaserestgoogle-cloud-firestore

解决方案


您只返回响应中的第一个结果。您应该返回整个用户数组。请参阅以下代码:-

app.get('/api/profiles', (req, res) => {
    let citiesRef = db.collection('profiles');
     let responseArr=[]    //declare an empty array
    let allCities = citiesRef.get()
      .then(snapshot => {
        snapshot.forEach(doc => {
          responseArr.push(doc.id+ '=>'+ doc.data());   //push users into an array
        });
      res.send(responseArr);   //send response array containing all users
      })
      .catch(err => {
        console.log('Error getting documents', err);
      });
});

推荐阅读