Я делаю программу, в которой при регистрации пользователя им необходимо загрузить изображение в хранилище 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:»»; }); }); }
Проблема в том, что значение imageUrl, написанное в документе firestore, всегда пусто, даже если файл изображения успешно загружен, любые советы будут приняты во внимание. Благодарность
Вы пытались распечатать значения после загрузки? Возвращает ли он URL? — person Jolzal schedule 08.12.2020
Источник: