【问题标题】:Web Firestore - Save Double value to FirebaseWeb Firestore - 将 Double 值保存到 Firebase
【发布时间】:2019-11-15 00:47:36
【问题描述】:

我目前正在尝试在 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);

这不起作用,值保存在字符串中。

在网络上处理这个问题似乎比在 iOS 或 Android 上要复杂得多。

【问题讨论】:

    标签: javascript firebase google-cloud-firestore double


    【解决方案1】:

    根据data types in Cloud Firestore的官方文档,有两种数值数据类型:

    浮点数:64 位双精度,IEEE 754。

    整数:64位,有符号

    以及您的问题的解决方案:

    我的问题很简单:我想保存 Double 值,但是当一个数字像 113 而不是 145.3 时,例如,该值会自动保存在 Long 中。

    如果您想将113 保存为双精度,则将其保存为113.3 简单地保存为113,因为Firestore 将看到113 是@987654326 类型的简单数字@ 它将相应地保存它。始终根据您需要的数据类型保存数据。

    编辑:

    无论您添加113 还是113.0,该值都将作为113 保存在数据库中。如果您想以113.0 的形式获取它,那么您必须以double 的形式获取它。在Android中,您可以使用以下代码行:

    double doubleValue = document.getDouble("myDoubleProperty");
    

    即使myDoubleProperty 持有113 的整数值,它也可以保存为双精度数。 double 总是可以容纳 Integer,而 Integer 在没有特定类型的情况下永远无法容纳 double。

    【讨论】:

    • 我不清楚对不起。如果我必须保存像 113 这样的值,我想将其保存为 113.0(我不知道如何正确执行)
    • 哦,我现在明白了。请查看我的更新答案。
    • 所以不能将 113 保存为来自 Web 的 Double 值?对我来说会容易得多
    • 不,113 将作为整数保存在数据库中,但您必须将其读取为双精度。
    • 但是如果你有一个双倍的 Firestore 查询并且你碰巧手动手动保存 113 而不是以编程方式保存,它将被保存为整数并被查询忽略...不好...
    猜你喜欢
    • 2021-03-14
    • 1970-01-01
    • 2020-10-13
    • 2019-03-31
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    相关资源
    最近更新 更多