我正在使用python在firebase firestore上执行此查询:
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 documentation页面上的示例非常接近:
cities_ref = db.collection(u'cities')
query = cities_ref.where(u'country', u'in', [u'USA', u'Japan'])
return query
我找不到此错误的任何原因,如果删除where('group','in',groups)子句,一切正常。
我的Google相关软件包:
google-api-core 1.15.0
google-api-python-client 1.7.11
谷歌认证1.10.0
google-auth-httplib2 0.0.3
谷歌云0.34.0
google-cloud-core 1.1.0
google-cloud-firestore 1.6.1
谷歌云存储1.24.1
谷歌可恢复媒体0.5.0
googleapis-common-protos 1.6.0
最佳答案
我用相同的软件包制作了一个新的虚拟环境,并解决了问题,然后再尝试更新现有的虚拟环境而没有成功。
新虚拟环境中的软件包:
google-api-core 1.15.0
google-api-python-client 1.7.11
谷歌认证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
谷歌云任务1.3.0
谷歌可恢复媒体0.5.0
googleapis-common-protos 1.6.0
请注意,它们之前是相同的。尽管如此,它仍然有效。
感谢您的评论。