Индексы Cloud Firestore для групп сбора с несколькими предложениями where - PullRequest
0 голосов
/ 04 августа 2020

Я написал функцию, которая запускается каждые x раз и меняет поле в документе в облачном хранилище, если применяется указанное условие c. Однако функция не работает из-за того, что функции требуется индекс. Я не знаю, какой индекс мне нужен.

Это строка, которая выдает ошибку.

const snapshot = db.collectionGroup('people').where('dateEndFunctional', '<', today).where('state', '==', 'active').get()
      .then(function(querySnapshot){
        querySnapshot.forEach(function(doc){

Это сообщение об ошибке, которое я получаю

Error: 9 FAILED_PRECONDITION: The query requires an index. You can create it here: https://console.firebase.google.com/v1/r/project/fmis-online-dev/firestore/indexes?create_composite=Ck5wcm9qZWN0cy9mbWlzLW9ubGluZS1kZXYvZGF0YWJhc2VzLyhkZWZhdWx0KS9jb2xsZWN0aW9uR3JvdXBzL3Blb3BsZS9pbmRleGVzL18QAhoJCgVzdGF0ZRABGhUKEWRhdGVFbmRGdW5jdGlvbmFsEAEaDAoIX19uYW1lX18QAQ

Если я перейду по ссылке, я всегда получаю сообщение об ошибке, как на изображении ниже. введите описание изображения здесь В нем говорится: Ошибка загрузки. Произошла ошибка при загрузке [ссылка]. Попробуйте еще раз.

Однако, жутко, когда я пытаюсь снова, это дает ту же ошибку.

Я попытался создать комбинированный индекс для обоих полей, которые также проверяются предложениями where как создание двух отдельных индексов для каждого из полей. Оба привели к одной и той же ошибке. Какой индекс мне нужен для правильной работы этой функции?

Заранее благодарим за помощь!

1 Ответ

0 голосов
/ 04 августа 2020

Ссылка должна работать, просто убедитесь, что вы вошли в правильную учетную запись в облаке Google .....

Для людей, которые хотят получить ответ: индекс группы сбора для людей с состоянием AS C и dateEndFunctional ASC введите описание изображения здесь

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

...