Node.js 如何以json格式从firestore返回数据?
我正在尝试创建一个函数(在服务器端)来从firestore返回数据 但它总是返回未定义的我 我试图在返回它之前显示它,我可以在终端中看到值Node.js 如何以json格式从firestore返回数据?,node.js,google-cloud-firestore,Node.js,Google Cloud Firestore,我正在尝试创建一个函数(在服务器端)来从firestore返回数据 但它总是返回未定义的我 我试图在返回它之前显示它,我可以在终端中看到值 exports.get_client = (ref)=> { ref.collection("clients/").get().then(function(coll) { let a= [] coll.forEach(element => { a.push({"User"
exports.get_client = (ref)=> {
ref.collection("clients/").get().then(function(coll) {
let a= []
coll.forEach(element => {
a.push({"User": element.id, "data": element.data()})
return a
})
}).catch(function(error) {
console.log("Error getting document:", error);
});
}
我期望[{用户:'test@test.com',
数据:
{电子邮件:'test@test.com',
家族名称:“test2”,
名字:'test'}}]
但是我没有定义。您的
返回一行
刚刚从传递给forEach
的lambda函数返回。它实际上没有从函数get\u client
返回任何内容。如果要从get\u client
返回值,则必须在lambda之外执行该操作
exports.get_client = (ref)=> {
return ref.collection("clients/").get().then(function(coll) {
let a= []
coll.forEach(element => {
a.push({"User": element.id, "data": element.data()})
})
return a
}).catch(function(error) {
console.log("Error getting document:", error);
});
}
您的
返回一行
刚刚从传递给forEach
的lambda函数返回。它实际上没有从函数get\u client
返回任何内容。如果要从get\u client
返回值,则必须在lambda之外执行该操作
exports.get_client = (ref)=> {
return ref.collection("clients/").get().then(function(coll) {
let a= []
coll.forEach(element => {
a.push({"User": element.id, "data": element.data()})
})
return a
}).catch(function(error) {
console.log("Error getting document:", error);
});
}
我尝试了这个,但是我得到了相同的结果,未定义。我编辑了代码。它缺少由
catch
返回的承诺的返回。客户端将需要使用此承诺在其可用时获取最终值。我尝试了此操作,但得到了相同的结果,未定义。我编辑了代码。它缺少由catch
返回的承诺的返回。客户将需要使用此承诺,以在其可用时获得最终价值。