firebase - 在“FIRStorageMetadata *”类型的对象上找不到属性“downloadURL” - 尝试构建 Flutter 项目时出现此错误
问题描述
我正在尝试在安装了 firebase 的 Xcode 上构建 Flutter 项目。我收到以下错误:Property 'downloadURL' not found on object of type 'FIRStorageMetadata *'
这是由 FirebaseStoragePlugin.m 文件中的以下部分引起的:
NSString *path = call.arguments[@"path"];
NSDictionary *metadataDictionary = call.arguments[@"metadata"];
FIRStorageMetadata *metadata;
if (![metadataDictionary isEqual:[NSNull null]]) {
metadata = [self buildMetadataFromDictionary:metadataDictionary];
}
FIRStorageReference *fileRef = [[FIRStorage storage].reference child:path];
[fileRef putData:data
metadata:metadata
completion:^(FIRStorageMetadata *metadata, NSError *error) {
if (error != nil) {
result(error.flutterError);
} else {
// Metadata contains file metadata such as size,
// content-type, and download URL.
NSURL *downloadURL = metadata.downloadURL; <---------------- This line
result(downloadURL.absoluteString);
}
}];
}
由于我没有生成此代码,因此我并不特别想编辑它,因为它应该是开箱即用的。我尝试更改方法以查看更高版本的 Firebase 是否可能只接受另一个功能但无济于事。在这种情况下我该怎么办?我是否应该尝试使用更高版本的 Firebase 重建项目,或者是否有单行修复?
解决方案
于2018 年 5 月从downloadURL
课堂StorageMetadata
上移除。如果您的本机 iOS 代码仍然使用它,那么是时候找到更新的 SDK 或更新您的代码以匹配有关上传文件和获取其下载 URL的文档。
如果您使用的是FlutterFire 绑定库metadata.downloadURL
,请升级到最新版本(因为我在其当前代码库中绝对看不到任何引用)。如果您正在使用另一个库,请检查最新版本是否解决了问题 - 或者考虑切换到 FlutterFire 库,因为这些库维护得非常积极。
推荐阅读
- pdf - 如何强制 PDFsharp 仅嵌入字体的子集?
- javascript - 从 VuetifyJS/VueJS 中的一个代码库为多个平台构建的代码库结构
- winbugs - 使用 R2Winbugs 时在哪里保存模型文件?
- python - tensorflow 尝试计算与损失无关的梯度
- database-design - Redis 架构设计 - 如何存储传感器数据流的滑动窗口?
- schema - 雪花云数据仓库上的多个数据集市架构/建模
- google-cloud-composer - Google Composer:找不到 dag_id
- django - 使用 apache2 在 Django rest wsgi 上上传图片的权限被拒绝
- python - Python 2.7:如何从特殊字符之间提取
- express-gateway - 如何使用快速网关重命名端点?