【发布时间】:2020-10-15 03:44:57
【问题描述】:
我正在尝试在按下按钮后立即将我的下载图片网址添加到 Firestore。但它不是存储一个 url,而是存储“未来的实例”
我试过下面的代码。
将图像存储到存储器:
Future uploadImageToFirebaseStorage(BuildContext context) async {
StorageReference firebaseStorageRef =
FirebaseStorage.instance.ref().child('uploads/$name');
StorageUploadTask uploadTask = firebaseStorageRef.putFile(_imageFile);
StorageTaskSnapshot taskSnapshot = await uploadTask.onComplete; }
这是获取图片网址:
Future<void> getImageFromStorage() async {
final ref = _storage.ref().child('uploads/$name');
var url = await ref.getDownloadURL();
_downloadUrl = url.toString();
print('The URL is : $_downloadUrl');
return url; }
并将此函数用作:
onPressed: () {
uploadImageToFirebaseStorage(context);
if (doctorsName != null &&
doctorsPost != null &&
doctorsDegree != null) {
_firestore.collection('Doctors Details').add({
'Name': doctorsName,
'Degree': doctorsDegree,
'Post': doctorsPost,
'URL': _downloadUrl, // Storing URL
});
}
setState(() {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Doctors(),
),
);
});
我尝试了很多,但我无法解决这个问题。我想我已经清楚地提到了我的问题。我现在正在等待你的帮助。 谢谢!
【问题讨论】:
标签: android firebase flutter google-cloud-firestore