Flutter ';列表<;动态>';不是类型为';列表<;字符串>';

Flutter ';列表<;动态>';不是类型为';列表<;字符串>';,flutter,dart,google-cloud-firestore,Flutter,Dart,Google Cloud Firestore,我正在对地图执行firestore查询尝试使用列表 List<String> permissionsAllowed = List<String>.from(permissions.keys.toList()); List permissionsallow=List.from(permissions.keys.toList()); 我不确定,但您是否正在尝试查找哪些键是字符串?如果是这样的话,下面的功能的方法如下所示2: main(List<String> a

我正在对地图执行firestore查询尝试使用
列表

List<String> permissionsAllowed = List<String>.from(permissions.keys.toList());
List permissionsallow=List.from(permissions.keys.toList());

我不确定,但您是否正在尝试查找哪些键是
字符串
?如果是这样的话,下面的
功能的方法如下所示2

main(List<String> args) {
  var permissions = {
    'key1': 'value1',
    'key2': 'value2',
    1: 'one',
    2: 'two',
  };
  List<String> featuresAllow = permissions.keys.toList().map((key) {
    return key.toString();
  }).toList();
  print('featuresAllow= $featuresAllow');
  List<String?> featuresAllow2 = permissions.keys
      .toList()
      .map((key) {
        if (key is String) return key;
      })
      .where((key) => key != null)
      .toList();
  print('featuresAllow2= $featuresAllow2');
}
main(列表参数){
var权限={
“键1”:“值1”,
“键2”:“值2”,
1:"一",,
二:"两",,
};
List featuresAllow=permissions.keys.toList().map((键){
return key.toString();
}).toList();
打印('featuresAllow=$featuresAllow');
列表功能sallow2=permissions.keys
托利斯先生()
.map((键){
如果(键为字符串)返回键;
})
.其中((键)=>key!=null)
.toList();
打印('featuresAllow2=$featuresAllow2');
}
守则:

List<String> permissionsAllowed = List<String>.from(permissions.keys.toList());
List permissionsallow=List.from(permissions.keys.toList());

如果键不是
字符串,则会出现异常。是否尝试过类型转换?但我刚刚更新并添加了尝试映射时遇到的另一个错误编辑后,您忘记了toList()
权限。keys.toList().map(…).toList()
列出权限sallow=permissions.keys.toList()作为列表。。。你可以试试。很抱歉,我忘记了,删除了它,并将尝试提供的解决方案。如果某个键不是
字符串
,则会出现异常
类型“int”不是类型“String”的子类型
。是的,这是假设所有动态数据都是字符串,如果数据有变体,则必须进行类型检查,或者在传递到
列表之前将其转换为字符串
main(List<String> args) {
  var permissions = {
    'key1': 'value1',
    'key2': 'value2',
    1: 'one',
    2: 'two',
  };
  List<String> featuresAllow = permissions.keys.toList().map((key) {
    return key.toString();
  }).toList();
  print('featuresAllow= $featuresAllow');
  List<String?> featuresAllow2 = permissions.keys
      .toList()
      .map((key) {
        if (key is String) return key;
      })
      .where((key) => key != null)
      .toList();
  print('featuresAllow2= $featuresAllow2');
}
List<String> permissionsAllowed = List<String>.from(permissions.keys.toList());