Использование Flutter с двойной переменной и Firestore с путаницей типа числового поля - PullRequest
0 голосов
/ 22 марта 2020

Я новичок во Flutter и Firestore и чувствую, что упускаю что-то, основанное c в том, как справляться с парными и Firebase. У меня есть код Flutter для чтения и записи Strings и int в Firestore, и все хорошо. Когда я настраиваю поле Firestore, жизнь чисел усложняется. Если во флаттере я определяю переменную как num (и игнорирую двойной тип данных Flutter), то все хорошо. Если я определю переменную Flutter как double, ничего не будет работать, если только я не гарантирую, что в поле номера Firestore будет, скажем, 10.2 (или любое другое значение с десятичной точкой). Значение 10 создаст sh приложение!

  1. Должен ли я просто всегда использовать num в Flutter и не использовать double? Любые последствия?

  2. При чтении кода из Firestore (propertyLandArea: snapshot.data ['propertyLandArea'] ?? 10.5,) мне следует выполнить проверку или каким-либо образом убедиться, что ProperyLandArea назначен двойной код. Использование чего-то простого, например, snapshot.data ['propertyLandArea']. ToDouble невозможно.

  3. Должен ли я просто использовать int и знать количество требуемых десятичных знаков, чтобы их можно было правильно отображать и сохранять (если я не забуду где-нибудь конвертировать).

1 Ответ

1 голос
/ 22 марта 2020

Я сталкивался с этой проблемой пару раз. Я использовал casting для преобразования number в double, когда я получал данные и когда я сохранял, я использовал double, а Firebase преобразовал в number.

1) Лично я бы не стал Не используйте номер, потому что если вы хотите уйти из базы, вы должны конвертировать свою модель. Я не думаю, что у вас будут другие последствия.

2) Я не думаю, что это необходимо проверять. Если вы хотите быть уверены, что получаете двойное, вы можете использовать проверку правил безопасности.

3) Нет. Как вы сказали, вы можете легко забыть об этом, чтобы изменить его где-нибудь, ваша проблема легко решаема и никогда не знаешь, где можно использовать эту дополнительную информацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...