Предупреждение о хранении Firebase при загрузке изображения: «Установка таймера на длительный период времени, т.е. несколько минут» - PullRequest
0 голосов
/ 08 января 2020

Установка таймера на длительный период времени, т. Е. На несколько минут, является проблемой производительности и правильности 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);
                });
            });
        }
...