【问题标题】:Firestore update nested objectsFirestore 更新嵌套对象
【发布时间】:2021-12-15 15:44:10
【问题描述】:

我正在尝试在嵌套映射中添加消息对象。正如您在下面的屏幕截图中看到的,我想进入“我们”,然后是“0”,然后是“消息”来添加我的对象。

我使用了以下脚本:

firestore.collection("沙龙").document(idSalon).update( “us.0.messages”,消息 );

当我使用它时,它会覆盖您所看到的所有内容。

有人可以帮帮我吗?

【问题讨论】:

标签: javascript firebase google-cloud-platform google-cloud-firestore


【解决方案1】:

正如我在您的屏幕截图中看到的,“我们”字段的类型是数组。为了能够更新数组,您应该使用arrayUnion而不是简单的字段更新。为此,我建议您查看有关update elements in a Firestore array 的官方文档。

我还写过一篇文章叫:

我认为这将有助于您更好地理解这个主题。

【讨论】:

  • 感谢您的回答。所以我尝试了以下脚本:firestore.collection("salon").document(idSalon).update("us",FieldValue.arrayUnion(message)); 显然,它不符合我想要的东西。确实,我想在“我们”数组中更新数字 0,然后是“消息”。我是否需要复制整个美国数组,进行修改然后将其写回firestore,或者是否可以在此数组中提供更新路径?我找不到我的答案。
  • 为了能够执行该更新,您应该首先在数组中找到要更新的对象,将其删除并添加新的(更新的)对象。你读过我回答中的article 吗?
  • 是的,我骑过它。事实是我不想删除任何东西来替换它。我有一系列消息,我只想添加一个新消息,而不是替换一个。
  • 好的,我明白了。你说你用过firestore.collection("salon").document(idSalon).update("us",FieldValue.arrayUnion(message));,但是很明显,它不适合这个东西。为什么? idSalon 的值是多少?
  • idSalon 是当前沙龙的 id。在我的应用程序上,我有不同的轿车。所以在带有 idSalon 的沙龙中,我想添加一条消息。在 Firebase 中,idSalon 是我给出的屏幕截图中的文档 ID,如“wPbnw....d7q”。
猜你喜欢
  • 2019-02-13
  • 2021-04-14
  • 2021-08-06
  • 2019-05-28
  • 2018-08-15
  • 1970-01-01
  • 2018-05-25
  • 2020-10-05
相关资源
最近更新 更多