Flutter: фильтрация базовых данных - PullRequest
0 голосов
/ 17 июня 2020

Я новичок в flutter, и я получал данные через firebase Google. Я обнаружил ошибку.

[ОШИБКА: flutter / lib / ui / ui_dart_state. cc (157)] Необработанное исключение: тип String не является подтипом типа int of ' index '

Код, по моему мнению, был правильным.

  var url = "https://<MyFirebaseProjectId>.firebaseio.com/products.json?auth=$authToken&orderBy='creatorId'&equalTo='$userId'"

но когда я поменял местами одинарные кавычки и двойные кавычки, код работал правильно.

 var url = 'https://<MyFirebaseProjectId>.firebaseio.com/products.json?auth=$authToken&orderBy="creatorId"&equalTo="$userId"'

Я не понимаю этого поведения, поскольку оба фрагмента кода должны работать правильно.

Любая помощь приветствуется. Заранее спасибо.

1 Ответ

1 голос
/ 18 июня 2020

Хотя Flutter / Dart может принимать как одинарные, так и двойные кавычки в качестве разделителей строк, Firebase REST API принимает только двойные кавычки.

Итак, хотя оба ваших фрагмента могут выглядеть одинаково для Dart / Flutter, Firebase сервер не распознает символ ' в первом фрагменте как разделители строк и из-за этого не знает, что делать с параметрами.

Решение состоит в том, чтобы всегда использовать " внутри строки , и, следовательно, используйте ' в качестве (внешнего) разделителя строк в вашем коде Flutter / Dart.

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