flutter 键值更新Map类型时为浮点类型

tktrz96b  于 2023-03-19  发布在  Flutter
关注(0)|答案(1)|浏览(110)

我想在用flutter/dart覆盖firestore中的map类型时,将键值设置为浮点类型。
可以使用“.set”但不能使用“.update”这怎么可能?

current output value(.update)
{"40"
 {"0":{"aaa" : "aaa", "bbb" : "bbb"}},
 {"5":{"ccc" : "ccc", "ddd" : "ddd"}}
}

Ideal output value(.set)
{"40.0":{"aaa" : "aaa", "bbb" : "bbb"},
{"40.5":{"ccc" : "ccc", "ddd" : "ddd"}
}

下面是相应的代码。

final testRef = FirebaseFirestore.instance.collection("test").doc("test");
await testRef.update(
      {
        "40.0": {"aaa" : "aaa", "bbb" : "bbb"},
        "40.5" : {"ccc" : "ccc", "ddd" : "ddd"},
      }
    );
dzhpxtsq

dzhpxtsq1#

update调用中,.用作字段分隔符,因此您的代码将更新顶级40字段的05子字段。
如果要寻址名称中包含.的顶级字段,可以创建一个FieldPath对象来引用它:

testRef.update({
  FieldPath(["40.0"]): {"aaa" : "aaa", "bbb" : "bbb"},
  FieldPath(["40.5"]): {"ccc" : "ccc", "ddd" : "ddd"},
});

另见:

相关问题