Web Firestore - Сохранить двойное значение в Firebase - PullRequest
0 голосов
/ 04 июля 2019

В настоящее время я пытаюсь сохранить значения в Firebase (в облачном хранилище).

Моя проблема действительно проста: я хочу сохранить значения Double, но когда число равно 113, а не 145.3 для примера, значение автоматически сохраняется в Long.

Это проблема, потому что из-за этого происходит сбой моего приложения Android, и бесполезно обрабатывать значения Double и Long одновременно.

Я пытался:

parseFloat(15)

Это не работает, если я создаю console.log (значение), я получаю 15 (не Double, я думаю).

Я также пытался:

var number = 15;
var doubleValue = number.toFixed(2);

Это не работает, значение сохраняется в строке.

Спасибо за вашу помощь, гораздо сложнее справиться с этим в Интернете, чем на iOS или Android ...

1 Ответ

0 голосов
/ 04 июля 2019

Согласно официальной документации относительно типов данных в Cloud Firestore , существует два числовых типа данных:

Число с плавающей запятой : 64-бит двойной точности, IEEE 754.

Целое число : 64-разрядное, со знаком

И решение вашей проблемы:

Моя проблема действительно проста: я хочу сохранить значения Double, но когда число равно 113, а не 145.3 для примера, значение автоматически сохраняется в Long.

Если вы хотите сохранить 113 как double, затем сохраните его как 113.3 , а не просто как 113, потому что Firestore увидит, что 113 - это простое число типа Integer, и сохранит его соответственно.Всегда сохраняйте данные в соответствии с нужным типом данных.

Редактировать:

Не имеет значения, если вы добавите, 113 или 113.0,значение сохраняется в базе данных как 113.Если вы хотите получить его как 113.0, тогда вы должны получить его как double.В Android вы можете использовать следующую строку кода:

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

Даже если myDoubleProperty содержит целочисленное значение 113, его можно сохранить в двойном размере.Двойник всегда может содержать целое число, в то время как целое число никогда не может содержать двойное число без определенного приведения.

...