如何从firestore数据库返回文档集合。 例如,我在云端防火墙中有一个名为countries的集合,我想以json的形式获取所有国家/地区名称和ID,就像这样
[
{
"countryId" : 1,
"countryName" : "Any"
},
{
"countryId" : 2,
"countryName" : "India"
}
]
现在我正在快照上做一个foreach。这是将集合转换为json的唯一方法吗?
答案 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);
});
}