Код загрузки веб-файла Firebase: "app / duplicate-app"

Я пытаюсь загрузить изображения и видео через firebase на свой сайт, первая загрузка работает, вторая загрузка показывает это сообщение на моей консоли:

firebase.js:1 Uncaught {code: "app/duplicate-app", message: "Firebase: Firebase App named '[DEFAULT]' already exists (app/duplicate-app).", name: "[DEFAULT]", stack: "[DEFAULT]: Firebase: Firebase App named '[DEFAULT]…(https://code.jquery.com/jquery-3.3.1.js:4991:28)"} code: "app/duplicate-app" message: "Firebase: Firebase App named '[DEFAULT]' already exists (app/duplicate-app)." name: "[DEFAULT]" stack: "[DEFAULT]: Firebase: Firebase App named '[DEFAULT]' already exists (app/duplicate-app).↵ at error (https://www.gstatic.com/firebasejs/5.5.3/firebase.js:1:49452)↵ at Object.initializeApp (https://www.gstatic.com/firebasejs/5.5.3/firebase.js:1:48095)↵ at fileInput (http://xxx.tv/theme/js/js.js:115:12)↵ at HTMLAnchorElement. (http://xxx.tv/theme/js/js.js:93:13)↵ at HTMLAnchorElement.dispatch (https://code.jquery.com/jquery-3.3.1.js:5183:27)↵ at HTMLAnchorElement.elemData.handle (https://code.jquery.com/jquery-3.3.1.js:4991:28)" proto: Error

Также, когда я пытаюсь загрузить видео, он не работает, он возвращает сообщение, что я не отправляю никаких данных:

Uncaught e {code_: "storage/invalid-argument", message_: "Firebase Storage: Invalid argument in put at index 0: Expected Blob or File.", serverResponse_: null, name_: "FirebaseError"}

HTML:

    <label for = "videoUpload">
        <i for = "videoUpload" class = "material-icons videoUploadIcon">videocam</i>
        <input id = "videoUpload" class = "videoUpload" type = "file" accept = "video/*" style = "display: none;">
    </label>

JS-ФАЙЛ

 $(document).ready(function(){
   var config = {
    apiKey: "",
    authDomain: "web-test-.com",
    databaseURL: "com",
    projectId: ",
    storageBucket: ".appspot.com",
    messagingSenderId: ""
  };
    firebase.initializeApp(config);
});

    $(function(){
        $("#postBtn").on('click', function(e){
            e.preventDefault();
            var postField = $('#postField').val();
            var image = $('#imgupload')[0].files[0];
            var video = $('.videoUpload')[0].files[0];
            fileInput(postField,image,video);
                $('#contentToUpload').hide();
                $('.videoUploadIcon').show();       
        });
    });
// <!-- ADD POST -->
// INPUT FILE FUNCTION
function fileInput(postField, image, video) {

    if (image != null) {
        uploadFile(image)
    } else if (video != null) {
        uploadFile(video)
    } else {
        console.info('youre upload cant be blank!');
    }


}


function uploadFile(file) {
var database = firebase.database();
var storage = firebase.storage();
const storageRef = storage.ref();
    var generatedName = Math.random().toString(36).substr(2, 20);
    const uploadTask = storageRef.child(`images/${generatedName}`).put(file); //create a child directory called images, and place the file inside this directory
    uploadTask.on('state_changed', (snapshot) => {
        uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, function(snapshot) {
            var percent = snapshot.bytesTransferred / snapshot.totalBytes * 100;
            $('.progress').css("display", "block");
            $('.numPercentage').css("display", "block");
            $('.determinate').width(parseInt(percent) + '%');
            $('.numPercentage').html(parseInt(percent) + '%');
        });
    }, (error) => {
        // Handle unsuccessful uploads
        console.info(error);
    }, () => {
        uploadTask.snapshot.ref.getDownloadURL().then(function(downloadURL) {
            console.info('File available at', downloadURL);
        });
        console.info('success');
        setTimeout(function() {
            $('.numPercentage').fadeOut(1000).css("display", "none");
            $('.determinate').fadeOut(1000).css("display", "none");
            $('.progress').fadeOut(1000).css("display", "none");
            $('.numPercentage').val("");
            $('.determinate').val("");
        }, 2000);
        document.getElementById("postField").value = null;
        document.getElementById("imgupload").value = null;
        document.getElementById("videoUpload").value = null;
        setTimeout(function() {
            $('.feed-posts').load('/php/posts.php').fadeIn('slow');
        }, 1000);
    });
}
}

// INPUT FILE FUNCTION

Я удалил конфигурации firebase, потому что я не использую никаких правил

Arian 11.10.2018 00:04
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
318
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны вызывать firebase.initializeApp() только один раз при загрузке страницы. Прямо сейчас вы вызываете это при каждой загрузке.

То же самое происходит

Arian 11.10.2018 00:42

Извините за ошибку, вы правы, я не вызывал firebase.initializeApp (), спасибо, теперь он работает (Y)

Arian 11.10.2018 01:02

Другие вопросы по теме