我目前正在尝试在Firebase(云Firestore)上保存值。
我的问题很简单:我想保存Double值,但是例如当一个数字是113而不是145.3时,该值会自动保存在Long中。
这是一个问题,因为我的Android应用程序因此而崩溃,并且同时处理Double和Long值是一团糟。
我试过了:
parseFloat(15)
如果我做一个console.log(value),我得到15(不是Double I
猜测)。
我也尝试过:
var number = 15;
var doubleValue = number.toFixed(2);
这不起作用,值保存在String中。
在网络上处理此问题似乎比在iOS或Android上复杂得多。
最佳答案
根据有关data types in Cloud Firestore的官方文档,有两种数字数据类型:
解决问题的方法:
如果您想将113
保存为 double 形式,则将其另存为113.3
而不是只是113
,因为Firestore会看到113
是Integer
类型的简单数字,它将进行相应保存。始终根据所需的数据类型保存数据。
编辑:
不管添加113
还是113.0
,该值都将存储为113
。如果要以113.0
的形式获取它,则必须以double
的形式获取它。在Android中,您可以使用以下代码行:
double doubleValue = document.getDouble("myDoubleProperty");
即使myDoubleProperty
拥有113
的Integer值,也可以将其保存为 double 型。 double 型总是可以容纳一个整数,而没有特定类型的转换则不能容纳 double 型。