Flutter中Firebase如何使用带点号的字段名(如'0.1')
Flutter Firestore 带点号字段名更新解决方案
Firestore 默认会把字段键里的点号(.)解析成嵌套对象的层级分隔符,所以你直接用'0.1'当键时,才会生成0: {1: value}的嵌套结构。
要正确更新名为'0.1'的字段,得用FieldPath显式指定字段名,绕开Firestore的点号解析逻辑。修改后的代码如下:
await FirebaseFirestore.instance .collection('products') .doc('a') .update({ FieldPath(['0.1']): FieldValue.arrayUnion(value) });
FieldPath接收一个字符串数组,数组里的单个元素就是你要操作的完整字段名,这样Firestore就会把'0.1'当作独立字段名,而非嵌套结构的路径。
之前试的flat包没用,是因为Firestore的点号解析逻辑在SDK层面处理,第三方包没法覆盖这个机制,官方的FieldPath才是最可靠的解决方式。
内容的提问来源于stack exchange,提问作者naoki perez
相关产品推荐
相关产品推荐

