getCategories
необходимо вернуть обещание, если вы хотите использовать await
для него. Прямо сейчас ничего не возвращается. Вам нужно будет вернуть созданное вами обещание:
function getCategories() {
let arr = [];
return categories
.get()
.then(snapshot => {
snapshot.forEach(doc => {
console.log(doc.data().category);
arr.push(doc.data().category);
return arr;
});
})
.catch(err => {
console.log(err);
return [1, 2, 3];
});
}
Обратите внимание на ключевое слово return
.
Возможно, здесь также возникла другая проблема. Вы повторяете снимок, используя forEach
, и возвращаете arr
из лямбда-функции, которую вы передали forEach
. Это не вернет данные снимка вызывающей стороне. Вам нужно будет вернуть значение из then
лямбда:
.then(snapshot => {
const arr = []
snapshot.forEach(doc => {
console.log(doc.data().category);
arr.push(doc.data().category);
});
return arr;
})