Как использовать » Где » для чтения данных из документа Firestore в облачных функциях Google?

# #javascript #firebase #google-cloud-platform #google-cloud-firestore

Вопрос:

Я пытаюсь использовать предложение where, чтобы найти документ в своей базе данных Firestore с помощью функции Google cloud, это мой код ниже, когда я пытаюсь просто получить документ с идентификатором, это работает, но когда я пытаюсь использовать предложение where, это не так, как я могу это исправить? Я делаю что-нибудь не так

 return await firestore.collection(COLLECTION_NAME).where('APIKEY', '==', '<APIKEY_VALUE>').get().then(doc => {            
  if (!(doc amp;amp; doc.exists)) {
    return res.status(404).send({
      error: 'Unable to find the document'
    });
  }
  const data = doc.data();
  console.log(data);
  if (!data) {
    return res.status(404).send({
      error: 'Found document is empty'
    });
  }
  return res.status(200).send(data);
}).catch(err => {
  console.error(err);
  return res.status(404).send({
    error: 'Unable to retrieve the document',
    err
  });
});
 

Вот скриншот моей базы данных Firestore и документа, который я хочу собрать:

введите описание изображения здесь

Комментарии:

1. Что не работает с этим кодом, когда вы его запускаете? Если вы ожидаете, что запрос будет соответствовать документу, но это не так, пожалуйста, отредактируйте свой вопрос, чтобы включить снимок экрана документа, который вы ожидаете получить.

2. я добавил скриншот, пожалуйста, дайте мне знать, что я делаю не так

3. Спасибо за это. Что происходит, когда вы запускаете код? Есть ли какая-то ошибка? Если нет, то какой ответ будет отправлен клиенту?

4. вы использовали firestore.collection(COLLECTION_NAME) в своем запросе или firestore.collection('accounts') ?

5. @FrankvanPuffelen это выдает мне эту ошибку { «ошибка»: «Не удалось найти документ» }

Ответ №1:

Вы должны заменить «ИМЯ_КОЛЛЕКЦИИ» именем коллекции, которую вы хотите найти.

Заменить firestore.collection(COLLECTION_NAME) на firestore.collection('accounts')