Установка таймера на длительный период времени, т. Е. На несколько минут, является проблемой производительности и правильности ness при Android, так как он не активирует модуль таймера, а таймеры могут вызываться только тогда, когда приложение находится на переднем плане.
const takePicture = async () => {
await Permissions.askAsync(Permissions.CAMERA);
let pickerResult = await ImagePicker.launchCameraAsync({
allowsEditing: false,
base64: true,
});
if (!pickerResult.cancelled && ind === 0) {
setImgProfile(pickerResult.uri);
const response = await fetch(pickerResult.uri);
const blob = await response.blob();
var storageRef = firebase.storage().ref();
// var mountainsRef = storageRef.child(pickerResult.uri);
// var mountainImagesRef = storageRef.child(`Images/${pickerResult.type}`);
var uploadTask = storageRef.child(`Images/myImage`).put(blob);
uploadTask.on('state_changed', function (snapshot) {
var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
console.log('Upload is ' + progress + '% done');
switch (snapshot.state) {
case firebase.storage.TaskState.PAUSED: // or 'paused'
console.log('Upload is paused');
break;
case firebase.storage.TaskState.RUNNING: // or 'running'
console.log('Upload is running');
break;
}
}, function (error) {
// Handle unsuccessful uploads
console.log(error.message);
}, function () {
// Handle successful uploads on complete
// For instance, get the download URL: https://firebasestorage.googleapis.com/...
uploadTask.snapshot.ref.getDownloadURL().then(function (downloadURL) {
console.log('File available at', downloadURL);
});
});
}