更新Firebase中的嵌套对象

时间:2019-02-27 15:25:19

标签: angular firebase google-cloud-firestore

我正在尝试更新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),因此我可以搜索具有此标题的内容并仅更新此故事?

1 个答案:

答案 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