? 标题})',firebase,flutter"/>

首页 > 解决方案 > 没有为“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;
  }
}

标签: firebaseflutter

解决方案


我更改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!);,然后它工作得很好。


推荐阅读