Flutter抱怨firebase_storage :: StorageUploadTask上缺少吸气剂,但是当我打开声明时,它就在那儿。
/flutter ( 3107): [ERROR:flutter/shell/common/shell.cc(182)] Dart
Error: Unhandled exception:
E/flutter ( 3107): 'package:flutter_project/widgets/screen.dart': error: line 284 pos 43: lib/widgets/camera_screen.dart:284:43: Error: The getter 'future' isn't defined for the class 'firebase_storage::StorageUploadTask'.
E/flutter ( 3107): Try correcting the name to the name of an existing getter, or defining a getter or field named 'future'.
E/flutter ( 3107): final downloadUrl = (await uploadTask.future).downloadUrl;
E/flutter ( 3107): ^
Firebase存储代码(您可以看到“获取未来”是课程中的最后一项。):
abstract class StorageUploadTask {
final FirebaseStorage _firebaseStorage;
final String _path;
final StorageMetadata _metadata;
StorageUploadTask._(this._firebaseStorage, this._path, this._metadata);
Future<void> _start();
Completer<UploadTaskSnapshot> _completer =
new Completer<UploadTaskSnapshot>();
Future<UploadTaskSnapshot> get future => _completer.future;
}
Flutter Doctor输出:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, v0.10.1-pre.39, on Mac OS X 10.14 18A391, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.0)
[✓] Android Studio (version 3.1)
[!] IntelliJ IDEA Community Edition (version 2017.1.5)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] VS Code (version 1.27.2)
[✓] Connected device (1 available)
! Doctor found issues in 1 category.
来自pubspec.yaml的依赖项:
firebase_storage: ^1.0.4
我刚刚更新了Flutter。在更新之前,只有在更新之后,我才没有这个问题。
此外,有时我会在编译过程中收到错误,但有时只有在应用程序在设备上运行之后才会出现错误。
这根本没有道理。
显然,我在VS Code中使用“转到定义”工具时看到的代码不是正确的代码。我尝试做一些建议的事情(还原为firebase_storage版本1.0.2,使用.onComplete而不是.future),但这些都不起作用。所以我决定放弃一夜。
今天早上,firebase_storage中的代码不同。我不确定VS Code是否存在缓存问题,但这似乎是问题所在。现在我看到.future不存在,但是我可以使用.onComplete。我将代码更改为使用.onComplete,它可以正常工作。
如果我使用的是IntelliJ或Android Studio,也许我不会遇到这个问题。
答案 0 :(得分:1)
基于@ anmol.majhail的建议,我能够使其正常运行。我恢复为firebase_storage的1.0.2版本,从使用.future更改为.onComplete。
直到最初尝试几个小时后,它才开始工作,因此似乎存在VS Code缓存依赖项的问题,但是我不确定为什么或持续多长时间。