Получение 'String не является подтипом типа' List <dynamic>'Ошибка при вызове clientViaServiceAccount - PullRequest
0 голосов
/ 09 марта 2019

Я пытаюсь добавить имя и фамилию пользователя в ячейки A и B целевого листа Google, но получаю сообщение об ошибке:

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

всякий раз, когда я отправляю свой код.

Я знаю, что ошибка изолирована от блока кода clientViaServiceAccount , потому что это строка кода, на которую указывает стек ошибок.Я попытался изменить _scopes на [SheetsApi.SpreadsheetsScope] в параметрах, но это привело к тому же самому.

Я смоделировал этот блок кода на основе приведенного ниже примера: https://pub.dartlang.org/packages/googleapis#-example-tab- и второго ответа здесь: Google Sheets API v4 для Flutter / Dart

if (_formKey.currentState.validate()){
  Navigator.push(
    context, 
    MaterialPageRoute(builder: (context) => ConfirmationPage()),
  );
  _formKey.currentState.save();
  final _privateKey = { 'private JSON key' };
  final _cred = new ServiceAccountCredentials.fromJson(_privateKey);
  final _scopes = [SheetsApi.SpreadsheetsScope];
  Map<String,String> _sheets = {
    "ISMI": 'sheet key',
    "NORCO": 'sheet key 2'
  };
  clientViaServiceAccount(_cred, _scopes).then((client){
    var api = new SheetsApi(client);
    ValueRange vr = new ValueRange.fromJson({"values": [_newUser.firstName,_newUser.lastName]});
    api.spreadsheets.values.append(vr,_sheets[_newUser.location],'A:B').then((AppendValuesResponse r) {
      client.close();
    });
  });
}

Любая помощь будет высоко ценится,

Спасибо

1 Ответ

0 голосов
/ 09 марта 2019

Проблема заключалась в том, что JSON должен быть окружен символом r '' '' ''. Поэтому я изменил переменную _privateKey на это:

final _privateKey = r'''{private JSON key}''';
...