#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].
Я действительно не знаю, почему это происходит, и не знаю, как это решить. Но я попытаюсь отфильтровать данные, поступающие из запроса