Я пытаюсь создать функцию (на стороне сервера), способную возвращать данные из 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.info("Error getting document:", error);
});
}
Я ожидал [ { Пользователь: '[email protected]', данные: { электронная почта: '[email protected]', имя_семьи: 'test2', first_name: 'тест' } } ] но у меня было неопределенное.
Ваша строка return a
только что возвращается из лямбда-функции, которую вы передали forEach
. На самом деле он ничего не возвращает из функции get_client
. Если у вас есть значение, которое нужно вернуть из get_client
, вам придется сделать это за пределами лямбды.
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.info("Error getting document:", error);
});
}
Я отредактировал код. Отсутствовал возврат обещания, возвращенного catch
. Клиент должен будет использовать это обещание, чтобы получить окончательное значение, когда оно станет доступным.
Я пробую это, но у меня тот же результат, неопределенный.