javascript - Web Firestore - 将 Double 值保存到 Firebase
问题描述
我目前正在尝试将值保存在 Firebase 上(在云 Firestore 上)。
我的问题很简单:我想保存 Double 值,但是当一个数字像 113 而不是 145.3 时,该值会自动保存为 Long。
这是一个问题,因为我的 Android 应用程序因此崩溃,并且同时处理 Double 和 Long 值是一团糟。
我试过了:
parseFloat(15)
这不起作用,如果我做一个 console.log(value) 我得到 15(我猜不是 Double)。
我也试过:
var number = 15;
var doubleValue = number.toFixed(2);
这不起作用,值保存在字符串中。
在网络上处理这个问题似乎比在 iOS 或 Android 上要复杂得多。
解决方案
根据Cloud Firestore 中有关数据类型的官方文档,有两种数字数据类型:
浮点数:64 位双精度,IEEE 754。
整数:64 位,有符号
以及您的问题的解决方案:
我的问题很简单:我想保存 Double 值,但是当一个数字像 113 而不是 145.3 时,例如,该值会自动保存在 Long 中。
如果你想保存113
为双精度,那么保存它113.3
不仅仅是因为113
Firestore 会看到这113
是一个简单的类型Integer
,它会相应地保存它。始终根据您需要的数据类型保存数据。
编辑:
无论您添加113
还是113.0
,该值都保存在数据库中为113
. 如果你想得到它,113.0
那么你必须得到它作为一个double
. 在 Android 中,您可以使用以下代码行:
double doubleValue = document.getDouble("myDoubleProperty");
即使myDoubleProperty
持有 的整数值113
,也可以保存为双精度值。double 总是可以持有 Integer,而 Integer 永远不能在没有特定类型的情况下持有 double。
推荐阅读
- pdf - ImageMagick: How do I convert pdf to jpg? I get ERROR: no decode delegate for this image format
- python - Python中的黄页刮板不起作用
- python - 什么是 LibTorch 等价于 PyTorch 的 torch.no_grad?
- sql - 如何从包含外键约束的表中选择数据?
- javascript - 使用按钮更改每个对象的值
- python - PasswordResetConfirmView 返回 200 成功响应但密码未在 django 中更改
- html - 在 laravel 中更新和编辑图像
- python - 带有 Python 请求的网站搜索功能
- javascript - Javascript:每次取消浏览器加载时调用函数
- javascript - 如何让 CloudFlare 工作人员响应来自用户的传入 HTTP 请求?