Функция Firestore ПОЛУЧИТЬ по выбранной категории

#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)