如何修复Flutter Firebase Storage中的“UploadTask方法OnComplete不存在”错误?
解决Firebase Storage UploadTask.onComplete不存在的问题
Firebase Storage更新后,UploadTask的API发生变更,原有的onComplete方法已被移除。现在UploadTask本身实现了Future<TaskSnapshot>接口,直接通过await即可获取上传完成后的TaskSnapshot。
修改后的完整代码如下:
import 'dart:io'; import 'package:firebase_storage/firebase_storage.dart'; import 'package:flutter/material.dart'; class StorageServisi { Reference _storage = FirebaseStorage.instance.ref(); Future<String> gonderiResmiYukle(File resimDosyasi) async { UploadTask yuklemeYoneticisi = _storage.child("resimler/gonderiler/gonderi.jpg").putFile(resimDosyasi); // 直接await UploadTask获取TaskSnapshot,替代原有的onComplete TaskSnapshot snapshot = await yuklemeYoneticisi; String yuklenenResimUrl = await snapshot.ref.getDownloadURL(); return yuklenenResimUrl; } }
修改说明
- 移除
yuklemeYoneticisi.onComplete调用,改为直接await yuklemeYoneticisi - 新版本中
UploadTask会在上传完成后直接返回TaskSnapshot,无需通过onComplete回调获取
内容的提问来源于stack exchange,提问作者Yusuf Altunç
相关产品推荐
相关产品推荐

