firebase - 没有为“Future”类型定义吸气剂“bodyBytes”函数(Uri,{地图? 标题})'
问题描述
我已将 dat 更新到 2.12 版,但出现此错误:
没有为类型“Future Function(Uri, {Map<String, String>? headers})”定义 getter 'bodyBytes'。尝试导入定义“bodyBytes”的库,将名称更正为现有 getter 的名称,或定义名为“bodyBytes”的 getter 或字段。
通过代码如下所示:
我在下面得到 2 条红线
"bodyBytes": 1
"result.paths.first": 2
代码
pdf.dart:
class PDFApi {
static Future<File> loadAsset(String path) async {
final data = await rootBundle.load(path);
final bytes = data.buffer.asUint8List();
return _storeFile(path, bytes);
}
static Future<File> loadNetwork(String url) async {
final response = await http.get; Uri.parse(url);
final bytes = response.bodyBytes; <-- here: "bodyBytes": 1
return _storeFile(url, bytes);
}
static Future<File?> pickFile() async {
final result = await FilePicker.platform.pickFiles(
type: FileType.custom,
allowedExtensions: ['pdf'],
);
if (result == null) return null;
return File(result.paths.first); <-- here: "result.paths.first": 2
}
static Future<File?> loadFirebase(String url) async {
try {
final refPDF = FirebaseStorage.instance.ref().child(url);
final bytes = await refPDF.getData();
return _storeFile(url, bytes!);
} catch (e) {
return null;
}
}
static Future<File> _storeFile(String url, List<int> bytes) async {
final filename = basename(url);
final dir = await getApplicationDocumentsDirectory();
final file = File('${dir.path}/$filename');
await file.writeAsBytes(bytes, flush: true);
return file;
}
}
解决方案
我更改final response = await http.get; Uri.parse(url);
为最终响应 = await http.get(Uri.parse(url)); thnx 到 pskink 和return File(result.paths.first);
to return File(result.paths.first!);
,然后它工作得很好。
推荐阅读
- python - UserWarning: volatile 已被删除,现在没有 essfet。使用'with torch.no_grad():' insted
- networking - 如何创建 IP 白名单以避免误报?
- javascript - 如何从单选按钮触发模式
- java - 以编程方式获取属性并使用 SPEL 对其进行评估
- android - 以下 Android Material 对话框中使用的字体是什么?
- mysql - Ruby On Rails 获取具有日期范围的记录数的更好方法
- javascript - 如何将图像相互叠加并在 css 中写入文本?
- javascript - 在过渡结束之前卸载组件
- reactjs - 用钩子推送新的键/值来状态 - React
- esp32 - ttgo lora sx1276 esp32 模块接收垃圾数据