Я хочу загрузить изображение в firebase (который работает), затем вернуть URL-адрес загрузки изображения и сохранить его в виде строки.
Вот мой код:
uploadImage = async (uri, imageName) => {
const response = await fetch(uri);
const blob = await response.blob();
firebase.storage().ref().child(imageName).put(blob)
.then(snap => {
return snap.ref.getDownloadURL();
})
.then(downloadURL => {
return downloadURL;
})
.catch(error => {
console.log(`An error occurred while uploading the file.\n\n${error}`);
});
}
Изображение загружается в хранилище firebase. На данный момент он просто показывает это, когда я пытаюсь записать URL-адрес загруженного изображения в базу данных: https://ibb.co/WHHHxBY
Вот блок кода, в котором я создаю запись пользователя:
firebase
.auth()
.createUserWithEmailAndPassword(this.state.email, this.state.password)
.then(userCredentials => {
let imageUrl = '';
let db = firebase.database().ref('users/' + userCredentials.user.uid);
if (this.state.image) {
imageUrl = this.uploadImage(this.state.image.uri, `images/user-${userCredentials.user.uid}`);
}
db.set({
email: this.state.email,
imageUrl: imageUrl,
username: this.state.username
});
return userCredentials.user.updateProfile({
displayName: this.state.username
});
})
.catch(error => this.setState({ errorMessage: error.message }));
_40
и_65
. Не знаю, почему это происходит. Может быть, он изначально не возвращает правильные данные? 03.11.2019downloadURL
? Что вы получаете? 03.11.2019_40
и_65
subnodes, но правильный downloadUrl! 03.11.2019