我正在尝试更新Google Firebase Cloud Firestore中的嵌套对象。
我的数据库结构是:
集合“用户”
-文档(userId)
----集合'matrix
------文档“服务”(获得更多文档:相同类型的不同名称)
--------成功:故事[]
--------失败:故事[]
--------名称:字符串
故事模式:
title: string
text: string
storyType: string ('success' | 'failure)
case: string (for instance 'service')
...
现在我正在使用Angular,并且想使用更新一个故事。我该怎么办?
我知道如何获得对“服务”文档的引用
update(story: Story, userId:string){ }
db.collection('users').doc(userId).collection('matrix).doc(story.case).update()
我是否需要更新整个文档,还是可以通过故事对象到达特定的故事(我知道他的类型,例如“成功”并且标题为uniq),因此我可以搜索具有此标题的内容并仅更新此故事?
答案 0 :(得分:0)
您可以使用arrayUnion和arrayRemove运算符在数组中添加和删除元素。
例如添加一个故事
db.collection('users').doc(userId).collection('matrix).doc(story.case).update(
{"success": FieldValue.arrayUnion(someStory)}
)
这些运算符将数组视为集合。您不能按索引访问单个项目。
此处的官方文档:https://firebase.google.com/docs/firestore/manage-data/add-data