首页 > 解决方案 > 更新firestore错误中的数组:AttributeError:'list'对象在Python中没有属性'items'

问题描述

我正在尝试使用来自 python 的字符串列表更新我的 Firestore 集合。

我的列表:

results = ['link1','link2']

我的 Firestore 文档是 01 Collection,文档如下:

链接(地图)----> List_of_all_links(数组)----> 这个列表应该有 2 个字符串 0:link1 1:link2

因为我使用 python 编码,所以我添加了这个:

db.collection(u'myjob').document(u'01').update(results)

错误:AttributeError:“列表”对象没有属性“项目”

现在,我的 Firestore 中有地图和数组,但没有字符串。有什么帮助吗?

标签: python-3.xgoogle-cloud-firestore

解决方案


要更新数组元素,您需要使用arrayUnion()添加数据和arrayRemove()删除以前的数据。例如:

old_results = ['link1','link2']
new_results = ['link3','link4']

links_ref = db.collection(u'myjob').document(u'01')
# Add new data from array links
links_ref.update({u'links': firestore.ArrayUnion(new_results)})

# Remove old data from array links
links_ref.update({u'links': firestore.ArrayRemove(old_results)})

推荐阅读