Сообщение об ошибке Firestore: недопустимая строка оператора 'in' - PullRequest
1 голос
/ 10 января 2020

Я выполняю этот запрос в пожарном депо пожарной базы, используя python:

groups = ['AG', 'PA']

docs = db.collection(u'companies').document(company).collection('counts').\
document(count_name).collection('preprocess').\
where('status', '==', 'done').where('statuslayers', '==', 'done').\
where('statuslive', '==', 'created').\
where('load', '==', False).where('group', 'in', groups).\
order_by(u'area').stream()

for doc in docs:
    print(u'{} => {}'.format(doc.id, doc.to_dict()))

Эта ошибка вызвана:

Недопустимая строка оператора 'in'. Допустимые варианты: <, <=, ==,>,> =, array_contains.

Пример документации Firebase очень близок к странице:

cities_ref = db.collection(u'cities')

query = cities_ref.where(u'country', u'in', [u'USA', u'Japan'])
return query

Я не смог найти причину этой ошибки, если я удалил предложение , где ('group', 'in', groups) все работает нормально.

Мои пакеты, связанные с Google:

  • google-api-core 1.15.0
  • google-api- python -клиент 1.7.11
  • google -auth 1.10.0
  • google-auth-httplib2 0.0.3
  • google-cloud 0.34.0
  • google-cloud-core 1.1.0
  • google-cloud-firestore 1.6.1
  • google-cloud-storage 1.24.1
  • google-resumable-media 0.5.0
  • googleapis-common-protos 1.6. 0

1 Ответ

0 голосов
/ 10 января 2020

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

Пакеты в новой виртуальной среде:

  • google-api-core 1.15.0

  • google-api- python -клиент 1.7.11

  • google-auth 1.10.0

  • google-auth-httplib2 0.0.3

  • google-cloud-core 1.1.0

  • google-cloud-firestore 1.6.1

  • google-cloud -pubsub 1.1.0 google-cloud-storage 1.24.1

  • google-cloud-tasks 1.3.0

  • google-resumable-media 0.5.0

  • googleapis-common-protos 1.6.0

Обратите внимание, что они были одинаковыми раньше. Тем не менее, это сработало.

Спасибо за комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...