首页 > 解决方案 > 如何使用 Flutter 和 Dart 将变量值发送到 API

问题描述

我正在尝试将变量值发送到 API 以获取用户详细信息(仅限登录后的特定用户)

这是我正在使用的代码(只是试图将该 uid 发送到 api 链接):

final FirebaseAuth _auth = FirebaseAuth.instance;
getCurrentUser() async {
  final FirebaseUser user = await _auth.currentUser();
  final uid = user.uid;
  print(uid);
}

Future<List<User>> _getUsers() async {
  var data = await http.get("https://api.example.com/get/myuserid=$uid");
  var jsonData = json.decode(data.body);
  List<User> users = [];
  for (var u in jsonData) {
    User user = User(u["customer_id"]]);
    users.add(user);
  }
  print(users.length);
  return users;
}

但我收到此错误:错误:flutter/shell/common/shell.cc(210)] Dart Unhandled Exception: type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'Iterable'

标签: androidflutterdart

解决方案


问题不在于在 API 中发送 UID 其工作正常,问题在于

for (var u in jsonData) {
    User user = User(u["customer_id"]]);
    users.add(user);
  }

jsonData 是一个Map<String, dynamic>你不能在 map 中使用的 for 循环


推荐阅读