Согласно официальной документации относительно типов данных в 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
, его можно сохранить в двойном размере.Двойник всегда может содержать целое число, в то время как целое число никогда не может содержать двойное число без определенного приведения.