从firestore返回文件集合为json

时间:2018-03-03 20:07:21

标签: firebase google-cloud-firestore

如何从firestore数据库返回文档集合。 例如,我在云端防火墙中有一个名为countries的集合,我想以json的形式获取所有国家/地区名称和ID,就像这样

[
    {
        "countryId" : 1,
        "countryName" : "Any"
    },
    {
        "countryId" : 2,
        "countryName" : "India"
    }
]

现在我正在快照上做一个foreach。这是将集合转换为json的唯一方法吗?

3 个答案:

答案 0 :(得分:2)

你所做的是正确的。您必须迭代集合/查询中的每个文档,并从那里自己生成JSON。没有一个操作可以将集合整体转换为其他格式。

答案 1 :(得分:0)

尝试这种方法

const db = admin.firestore();   
......
......
async function getCollection (req, res){ 
try{

  let result = await db.collection('collection_name').get(); //TODO: add query if needed
  let response = [];

  result.forEach(doc => {
    response.push(doc.data());
  });

  return res.send( { "collection" : response} );

 }catch(err){
  res.status(500).send(err);
 }

}

答案 2 :(得分:0)

有一种无需循环即可获取集合的方法。

const companies = async (req, res) =>{
    const {id} = req.query;
    db.collection("users")
        .where("role", "==", "vendor")
        .get()
        .then((querySnapshot) => {
            var docs = querySnapshot.docs.map(doc => doc.data());
            res.status(200).json(docs);
        });
}