【问题标题】:Flutter & Firebase : How to check if my picture is uploaded to Firebase Storage Successfully?Flutter & Firebase:如何检查我的图片是否成功上传到 Firebase 存储?
【发布时间】:2020-12-29 17:19:01
【问题描述】:
Flutter & Firebase : 如何检查我的图片是否成功上传到 Firebase 存储?
我正在尝试寻找一种方法来查看图片是否上传成功,以便我可以启动和停止我的LoadingScreen()。
final StorageReference firebaseStorageRef = FirebaseStorage.instance
.ref()
.child('$path/${userID}_${timeStamp}_${number}_${tag}.jpg');
final StorageUploadTask uploadTask = firebaseStorageRef.putFile(image);
我期待收到大家的来信。提前谢谢!
【问题讨论】:
标签:
image
firebase
flutter
google-cloud-firestore
firebase-storage
【解决方案1】:
以下是上传和验证图片是否上传到FirebaseStorage的方法:
final StorageReference firebaseStorageRef = FirebaseStorage.instance
.ref()
.child('$path/${userID}_${timeStamp}_${number}_${tag}.jpg');
StorageUploadTask uploadTask =
firebaseStorageRef.putFile(image);
StorageTaskSnapshot storageSnapshot = await uploadTask.onComplete;
var downloadUrl = await storageSnapshot.ref.getDownloadURL();
if (uploadTask.isComplete) {
final String url = downloadUrl.toString();
print(url);
//Success! Upload is complete
} else {
//Error uploading file
}
上传完成后你会得到downloadUrl。
【解决方案2】:
您可以使用StorageUploadTask 的onComplete 属性。
final StorageReference firebaseStorageRef = FirebaseStorage.instance
.ref()
.child('$path/${userID}_${timeStamp}_${number}_${tag}.jpg');
StorageUploadTask uploadTask =
firebaseStorageRef.putFile(image);
StorageTaskSnapshot storageSnapshot = await uploadTask.onComplete;
// Here you know that the picture/file is succesfully uploaded.
// You can stop your LoadingScreen().
请注意,您可以使用一些try-catch 子句来处理异步方法的错误。