【问题标题】:Return document collection as json from firestore从 firestore 以 json 形式返回文档集合
【发布时间】:2018-08-11 19:46:59
【问题描述】:

如何从 firestore 数据库返回文档集合。 例如,我在 cloud firestore 中有一个名为 countries 的集合,我想将所有国家/地区名称和 id 获取为 json ,就像这样

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

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

【问题讨论】:

    标签: firebase google-cloud-firestore


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      试试这个方法

      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);
       }
      
      }
      

      【讨论】:

        【解决方案3】:

        有一种方法可以在没有循环的情况下获取集合。

        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);
                });
        }
        

        【讨论】:

        • 方法“then”不存在:(
        猜你喜欢
        • 2020-11-04
        • 2020-02-27
        • 2018-07-01
        • 2014-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多