#node.js #firebase #function #google-cloud-firestore
# #node.js #firebase #функция #google-облако-firestore
Вопрос:
Мне нужна помощь с GET
функцией на Firebase.
Этот код предназначен для извлечения данных из firestorage:
app.get("/", async (req, res) => {
const snapshot = await admin
.firestore()
.collection("articles")
.orderBy("createdate", "desc")
.get();
const articles = [];
snapshot.forEach((doc) => {
const data = doc.data();
articles.push({ id: doc.id, ...data });
});
res.status(200).send(JSON.stringify(articles));
});
но как я могу отобразить эти данные по тегам, если я их вызову
app.get("/:tag", async (req, res) => {
Мои данные выглядят так
collection - articles
- id
- title
- body
- tags - [0]culture
- [1]technology
Комментарии:
1. Вы хотите получить список документов, в которых теги похожи?
2. @Ashish да, что-то вроде категории
Ответ №1:
я нахожу решение с помощью этого кода
app.get("/tag/:tag", async (req, res) => {
await admin
.firestore()
.collection("articles")
.where("tags", "array-contains", req.params.tag)
.get()
.then((snapshot) => {
const articles = [];
snapshot.forEach((doc) => {
const data = doc.data();
articles.push({ id: doc.id, ...data });
});
return res.status(200).send(JSON.stringify(articles));
})
.catch((error) => {
res.status(404);
});
});
я использую .where("tags", "array-contains", req.params.tag)