如何解决从 Firebase Storage 获取图像 URL 并将其存储在 Firebase 实时数据库中
我目前正在做一个大学项目,我在哪里将图像上传到存储并将图像 URL 保存在实时数据库中。我成功地将图像上传到存储并获取其下载 URL,没有任何问题。现在的问题是,当我单击提交按钮时,图像 URL 会打印在终端中,但它不会将其 URL 保存在实时数据库中并显示为空。谁能帮帮我
选择图像并保存到存储
String imageUrl,displayUrl;
var url;
File _image;
final picker = ImagePicker();
final db = FirebaseDatabase.instance;
Reference reference = FirebaseStorage.instance
.ref()
.child("UserPlantImages")
.child(StorageUtil.getString("myString"))
.child("image" + DateTime.now().toString());
Future getImage() async {
final pickedFile = await picker.getImage(source: ImageSource.camera);
setState(() {
if (pickedFile != null) {
_image = File(pickedFile.path);
} else {
print('No image selected.');
}
});
}
upload() async {
UploadTask uploadTask = reference.putFile(
_image,SettableMetadata(
customMetadata: {
'uploaded by': 'A bad guy','description': 'Some description...'
},),);
uploadTask.whenComplete(() async {
try {
imageUrl = await reference.getDownloadURL();
setState(() {
displayUrl = imageUrl;
});
} catch (onError) {
print("Error");
}
print(imageUrl);
});
}
凸起按钮将 URL 保存到实时数据库
RaisedButton(
child: Text("Submit"),color: Colors.blue,onPressed: () {
if (_formKey.currentState.validate()) {
_formKey.currentState.save();
upload();
displayUrl == null
? print("Image Could not be uploaded")
: print("image url is $displayUrl");
final ref = db
.reference()
.child(StorageUtil.getString("myString"))
ref.child("plantimg").set(displayUrl.toString());
}
}),
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。