Javascript 向firestore文档添加密钥时出现问题

Javascript 向firestore文档添加密钥时出现问题,javascript,firebase,google-cloud-firestore,add,Javascript,Firebase,Google Cloud Firestore,Add,我想在Firestore中添加一个十进制数作为文档的键。 我试着这样做: key = 2.22 key = key + 0.01 db.collection('collection').doc('doc').update({ [key] : value }) 但是这样我得到的键是{2:{23:value}。 我想像{2.23:value}那样得到它 我怎样才能做到这一点 在字段ID中使用的问题在于它需要像在 因此,如果你真的想要这个点,你应该像这样逃避它。,因为如果你不理解A.B

我想在Firestore中添加一个十进制数作为文档的键。 我试着这样做:

 key = 2.22   
 key = key + 0.01

 db.collection('collection').doc('doc').update({ [key] : value })
但是这样我得到的键是
{2:{23:value}
。 我想像
{2.23:value}
那样得到它

我怎样才能做到这一点


在字段ID中使用
的问题在于它需要像在

因此,如果你真的想要这个点,你应该像这样逃避它。,因为如果你不理解
A.B
A
键映射中的
B

如果可以限制浮点键的小数,另一个解决方案是将浮点转换为整数,这样就不会出现点表示法的问题


例如,如果您只能有两个小数:
2.22
将是
222
2.22*100
)。

在字段ID中使用
的问题是,它需要像

因此,如果你真的想要这个点,你应该像这样逃避它。,因为如果你不理解
A.B
A
键映射中的
B

如果可以限制浮点键的小数,另一个解决方案是将浮点转换为整数,这样就不会出现点表示法的问题

例如,如果您只能有两个小数:
2.22
将是
222
2.22*100
)。
update()
方法将
解释为对嵌套字段进行寻址。因此
a.b.c
将是字段
c
中的一个字段
b
中的字段
a

据我所知,没有办法阻止Firestore在调用
update()
时解释
。幸运的是,对
set()
的调用不会以相同的方式进行解释,您可以将
set
merge:true
结合使用,以获得相同的更新行为,而不必解释点

db.collection('collection').doc('doc').set({ [key] : value }, { merge: true })
update()
方法将
解释为对嵌套字段进行寻址。因此
a.b.c
将是字段
c
中的一个字段
b
中的字段
a

据我所知,没有办法阻止Firestore在调用
update()
时解释
。幸运的是,对
set()
的调用不会以相同的方式进行解释,您可以将
set
merge:true
结合使用,以获得相同的更新行为,而不必解释点

db.collection('collection').doc('doc').set({ [key] : value }, { merge: true })

真棒的回答,弗兰克!了解这两种方法之间的细微差别非常有趣。回答得真棒,弗兰克!了解这两种方法之间的细微差别非常有趣。