Javascript 向firestore文档添加密钥时出现问题
我想在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
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 })
真棒的回答,弗兰克!了解这两种方法之间的细微差别非常有趣。回答得真棒,弗兰克!了解这两种方法之间的细微差别非常有趣。