我正在尝试创建一个函数(在服务器端),能够从Firestore返回数据 但它总是让我返回不确定的状态
我试图在返回之前显示它,并且可以在终端中看到该值。
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”, family_name:“ test2”, first_name:'test'}}] 但是我没有定义。
答案 0 :(得分:0)
您的return a
行刚从传递给forEach
的lambda函数返回。它实际上并未从函数get_client
返回任何内容。如果您有一个要从get_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);
});
}