问题描述
当我要上传多张图片时,我遇到了问题。 我有一个包含“文件”的列表。我阅读了有关它的更多文章,并发现了这一点:
Future<List> uploadImage(List<Object> _imageFile) async {
final user = await FirebaseAuth.instance.currentUser();
List _urllist = [];
int i = 0;
await _imageFile.forEach((image) async {
print('igen: ' + image.toString());
// if (ref.getMetadata() != null) { //should be deleted,but this isn't working
// await ref.delete();
// }
print(image.imageFile);
final ref = FirebaseStorage.instance
.ref()
.child('business_image')
.child(user.uid)
.child(i.toString() + '.jpg');
i++;
StorageUploadTask uploadTask = ref.putFile(image.imageFile);
StorageTaskSnapshot downloadUrl = await uploadTask.onComplete;
String _url = await downloadUrl.ref.getDownloadURL();
_urllist.add(_url);
});
print(_urllist);
return _urllist;
}
但是当我调用此函数时:
List imageurllist;
final user = await FirebaseAuth.instance.currentUser();
uploadImage(getnewphotos).then((List urls) {
imageurllist = urls;
print(urls); //here I try to print it,but it returns null,guess the function don't wait for it?
Firestore.instance.collection('users').document(user.uid).updateData({
'email': widget.userData['email'],'username': userName != null ? userName : widget.userData['username'],'usertype': widget.userData['usertype'],'loclat': loclat != null ? loclat : widget.userData['loclat'],'loclng': loclng != null ? loclng : widget.userData['loclng'],'locationread':
searchAddr != null ? searchAddr : widget.userData['locationread'],'services': serviceList,'opening': openstart != null ? openstart : widget.userData['opening'],'closing': closeend != null ? closeend : widget.userData['closing'],'userImage': imageurllist,});
setState(() {
isUpload = false;
});
});
此功能有什么问题,有人可以帮我解决吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)