我正在使用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


请注意,它们之前是相同的。尽管如此,它仍然有效。

感谢您的评论。

10-06 06:18