Присвоение номера Flutter Firebase

#firebase #flutter #google-cloud-firestore

#firebase #флаттер #google-облако-firestore

Вопрос:

Я использую firebase с flutter. Когда я пытаюсь загрузить продукт, я получаю сообщение об ошибке:

 type 'double' is not a subtype of type 'int'
  

Когда я набираю стоимость вручную в CloudFirestore, проблема устраняется, но я не могу добавить продукт из своего приложения.

Вот часть номера моей модели продукта:

    dynamic newPrice, buyPrice;
      dynamic get getNewPrice=> int.parse(newPrice);
    
      set setNewPrice(dynamic newPrice) =>
          this.newPrice= int.parse(newPrice);
 dynamic get getbuyPrice=> int.parse(buyPrice);

  set setBuyoutPrice(dynamic buyPrice) =>
      this.buyoutPrice = int.parse(buyPrice);
  

ОШИБКА

введите описание изображения здесь

Комментарии:

1. Затем попробуйте проанализировать NewPrice и BuyPrice в double.

2. Вам действительно следует избегать определения переменных как динамических в Dart, за исключением очень специфических ситуаций. Вам нужно знать, какого типа вы ожидаете от переменной.

3. я попытался проанализировать double amp; int, но на самом деле не могу понять, всегда одна и та же ошибка

Ответ №1:

Firebase хранит числа в формате double, даже если вы просто отправляете int, поэтому, если вы извлекаете данные из firebase типа number, вам нужно проанализировать как double . Если вы введете вручную целое число в консоли firebase, вы сможете проанализировать его как int, но это просто «ручной взлом».