首页 > 解决方案 > Firestore - 对象未正确更新

问题描述

我有这个结构的对象:

{
  assignments: []
  faqs_url: "oi"
  id: "pW68CiGZJMZJzyY1GExz"
  name: "oi"
  notes: {
    file: {
      extension: "pdf", 
      type: "base64"
    }
    name: "o"
    url: "http://192.168.1.111:3000/notes/o.pdf"
  paper: "P1"
  past_topicals: []
  video_lectures: []
}

现在当我通过调用更新对象时set(obj, {merge: true});

在哪里

obj1 = {
  assignments: []
  faqs_url: "oi"
  id: "pW68CiGZJMZJzyY1GExz"
  name: "oi"
  notes: {
    name: "chnged name"
    url: "http://192.168.1.111:3000/notes/o.pdf"
  paper: "P1"
  past_topicals: []
  video_lectures: []
}

它的作用是替换notes对象并从对象中删除file键,因为它不存在于更新的对象中。

我的问题是,不适merge: true;用于嵌套对象?

有什么办法可以让它工作吗?

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


合并/更新不像您描述的那样工作。您必须读取文档的内容,修改内存中字段的值,然后将其写回文档。


推荐阅读