Я немного очистил код и заменил код, основанный на Promise, на async await
. Вы можете попробовать запустить это:
асинхронная ожидающая версия
firebase.initializeApp(firebaseConfig);
const db = firebase.firestore();
const buildItems = async () => {
return db.collection('reminders').get();
};
exports.view = functions.https.onRequest(async (req, res) => {
try {
const reminders = await buildItems();
let items = '';
reminders.forEach(qs => {
items.concat(`<li> ${qs.data().name} </li>`);
});
return res
.status(200)
.send(`
<!doctype html>
<head>
<title>Reminders</title>
</head>
<body>
<ul>
${items}
</ul>
</body>
</html>
`);
} catch (error) {
/** Handle error here */
}
});
Версия на основе обещаний
firebase.initializeApp(firebaseConfig);
const db = firebase.firestore();
const buildItems = () => {
return db.collection('reminders').get();
};
exports.view = functions.https.onRequest((req, res) => {
buildItems()
.then(reminders => {
let items = '';
reminders.forEach(qs => {
items.concat(`<li> ${qs.data().name} </li>`);
});
return res
.status(200)
.send(`
<!doctype html>
<head>
<title>Reminders</title>
</head>
<body>
<ul>
${items}
</ul>
</body>
</html>
`);
})
.catch(error => {
/** Handle Error here */
});
});
Если выПо-прежнему возникают проблемы, попробуйте, если на самом деле коллекция reminders
содержит документы, которые вы хотите получить.
Свойство .size
доступно в [QuerySnapShots][1]
в результатах моментального снимка запроса Firebase. Если размер снимка равен 0.