Я загружаю изображение в базу данных firebase и получаю из него imageUrl, но проблема в том, что я не могу дождаться завершения определенного вызова и выполнения процесса перед получением imageURL
Я попытался также выполнить функцию Promise и Async, чтобы подождать, но проблема не решена
Ниже приведен мой js-файл, в котором сначала вызывается addItem, и из этого я загружаю изображение в базу данных Firebase, и этот URL-адрес требуется отправить в базу данных Firebase
import { db,fireBaseObj } from '../firebase/db';
import RNFetchBlob from 'react-native-fetch-blob';
export const addItem = (userId,title,description,isdone,PriorityIndex,PriorityValue,image_path) => {
uploadImage(image_path) // Here is my upload image function
db.ref('/items/'+userId+'/').push({
title: title,
description: description,
isdone: isdone,
PriorityIndex:PriorityIndex,
PriorityValue:PriorityValue,
}).then(res =>{
return true;
}).catch(error =>{
return false;
})
}
export const uploadImage = (image_path) => {
const Blob = RNFetchBlob.polyfill.Blob;
const firestore = RNFetchBlob.fs;
window.XMLHttpRequest = RNFetchBlob.polyfill.XMLHttpRequest;
window.Blob = Blob;
const imageName = image_path.path.substring(image_path.path.lastIndexOf("/")+1);
let uploadBlob = null;
const imageRef = fireBaseObj.storage().ref("ref").child(imageName);
const mime = 'image/jpg';
firestore.readFile(image_path.path, 'base64')
.then((data) => Blob.build(data, { type: `${mime};BASE64` })
)
.then((blob) => {
uploadBlob = blob;
return imageRef.put(blob, { contentType: mime });
})
.then(() => {
uploadBlob.close();
return imageRef.getDownloadURL();
})
.then((url) => {
const obj = {};
obj.loading = false;
obj.dp = url;
this.setState(obj);
return url;
})
.catch((error) => {
console.log(error);
return error;
});
}
Буду признателен за любую помощь, поскольку я не могу точно определить, как справиться с подобной ситуацией