【发布时间】:2021-03-19 23:04:42
【问题描述】:
我正在制作一个程序,每当用户注册时,他们需要将图像上传到 firebase 存储,然后所有登录数据和图像 url 将在图像上传后立即写入 firestore,这是我的代码:
void signUp(String _email, String _password, File image) async {
await _auth
.createUserWithEmailAndPassword(email: _email, password: _password)
.then((result) async{
await uploadImage(image).then((value) {
_firestore.collection('users').doc(result.user.uid).set({
'uid': result.user.uid,
'email': result.user.email,
'imageUrl' : value!=null?value:""
});
});
Future<String> uploadImage(File image) async{
String fileName = p.basename(image.path);
Reference storageRef = _fstorage.ref().child('upload/$fileName');
UploadTask uploadTask = storageRef.putFile(image);
await uploadTask.whenComplete((){
storageRef.getDownloadURL().then((imageUrl) {
return imageUrl!=null?imageUrl:"";
});
});
}
问题是在firestore文档上写入的imageUrl的值总是空的,即使图像文件成功上传,任何建议都将不胜感激。谢谢
【问题讨论】:
-
您是否尝试在上传后打印这些值?是返回网址吗?
标签: firebase flutter google-cloud-firestore firebase-storage