gpt4 book ai didi

firebase - 为什么 Flutter 会因为明显存在的 "missing getter"而失败?

转载 作者:IT王子 更新时间:2023-10-29 06:43:54 24 4
gpt4 key购买 nike

<分区>

Flutter 提示 firebase_storage::StorageUploadTask 上缺少 getter,但是当我打开声明时,它就在那里。

/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 Storage 代码(您可以看到“get future”是该类中的最后一项。):

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,也许我就不会遇到这个问题。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com