我正在尝试将图像上传到Firebase存储并将该图像URL用作Firestore中的元数据,但是该图像URL始终为null。 (我假设图像在我将其添加到Firestore时尚未完成上传)。
这是我获取图片的方式:
npm uninstall -g angular-cli
npm cache clean
npm install -g rxjs
npm install -g @angular/cli
我如何将图片上传到Firebase存储:
Future<File> getPic() async {
return picture = await ImagePicker.pickImage(source:
ImageSource.camera);
}
我如何通过按下FloatingActionButton触发图片拍摄:
Future<Uri> uploadPic(File image) async {
StorageReference reference = _storage.ref().child("images/");
StorageUploadTask uploadTask = reference.putFile(image);
Uri location = (await uploadTask.onComplete).uploadSessionUri;
print('img location $location');
return location;
}
每当我尝试将此图像uri保存到Firestore时,它始终为null。那么这是什么问题?
答案 0 :(得分:0)
尝试
String downloadUrl =
await (await uploadTask.onComplete).ref.getDownloadURL();
代替您的
Uri location = (await uploadTask.onComplete).uploadSessionUri;
根据firebase
UploadSessionUri
的文档,用于恢复上传 同一文件的范围约为。 Here is the link for docs周