Ошибка «тип ‘String’ не является подтипом типа ‘int’ в приведении типа» при попытке преобразовать строку в int в flutter

#flutter #dart #google-cloud-firestore

# #трепетание #dart #google-cloud-firestore

Вопрос:

Я получаю эту ошибку d[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: type 'String' is not a subtype of type 'int' in type cast , когда пытаюсь преобразовать строку в int. Для меня более специфичным является значение, поступающее из Firebase, например

 QuerySnapshot result = await firestore.collection("video").get()

result.docs.forEach((element) {
      var ID = element.data().values.elementAt(4) // the element at this position is an ID

 });

 

Я уже пытаюсь многими способами преобразовать это значение в int, например:

 int value = int.parse(ID));
 

или

 int value = ID as int;
 

Но как бы я ни пытался, просто выдайте mt ту же ошибку,
Заранее большое спасибо

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

1. содержит ли идентификатор только целые числа?

2. Каков результат print(ID) ?

3. Он выводит «число», возможно, это просто число внутри строки. Мне нужно сравнить два числа, поэтому мне нужно преобразовать эту строку в int

Ответ №1:

Похоже ID , что это уже integer так, и нет необходимости в приведении типов. Попробуйте int value = ID;

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

1. Он возвращает «тип ‘String’ не является подтипом типа’int’ в приведении типа»

Ответ №2:

Похоже, проблема заключается в том, откуда поступают данные, то есть из firestore api.

Что происходит, так это то, что когда вы используете get () для получения данных из вашей базы данных, информация выглядит следующим образом [Имя пользователя, адрес электронной почты, идентификатор], но когда вы закрываете приложение, снова открываете и пытаетесь повторно вызвать эти данные, это может привести к следующему: [Имя пользователя, идентификатор,email].

Я действительно не знаю, почему это происходит, и не знаю, как это решить. Но я попытаюсь отфильтровать данные, поступающие из запроса