Иногда получалось сообщение об ошибке: «Приложение Firebase« [DEFAULT] »не создано - вызовите Firebase App.initializeApp ()». - PullRequest
0 голосов
/ 12 января 2019

У меня есть расширение, и оно прекрасно работает: https://chrome.google.com/webstore/detail/ux-unicorns-club/jfkbdlhcdoooljpkfjfllhlgeejhabbb

Но иногда (не могу отследить причину) у меня возникает ошибка в файле background.js, и он перестает обновлять БД:

Я гуглю несколько возможных решений, но они не дают ответов о расширении chrome и локальном хранилище и не объясняют случайную природу ошибки. Потому что, когда вы просто устанавливаете приложение, оно работает нормально, без ошибок.

Вот что я имею в файле background.js при объявлении firebase:

    var config = {
apiKey: "AIzaSyBDmZsXrDi6xnUeu_fXmoHh0StKjYCthvk",
authDomain: "uxunicorns-fca1e.firebaseapp.com",
databaseURL: "https://uxunicorns-fca1e.firebaseio.com",
projectId: "uxunicorns-fca1e",
storageBucket: "uxunicorns-fca1e.appspot.com",
messageingSenderId: "752488928557"
    };
    var firedata;


    chrome.runtime.onInstalled.addListener(function(details){
chrome.storage.sync.clear();
chrome.storage.sync.set({
    'uxuicorn_show_type': 'tab',
    'uxuicorn_first_time': true,
}, function() {
    firebase.initializeApp(config);
    firedata = firebase.database();
    updatedata();
});

А это функция, которая вызывает данные из БД:

    function updatedata() {
var category = [], posts = [], old_category, old_posts;
firebase.database().ref('/category').once('value').then(function(snapshot) {
    var snapshotexist = snapshot.exists();
    console.log(snapshotexist);
    if (snapshotexist) {
        snapshot.forEach(function(childSnapshot) {
            category.push(childSnapshot.val())
        });
        firebase.database().ref('/posts').once('value').then(function(snapshot) {
            var snapshotexist = snapshot.exists();
            console.log(snapshotexist);
            if (snapshotexist) {
                snapshot.forEach(function(childSnapshot) {
                    posts.push(childSnapshot.val())
                });
                get_array_value_from_storage('uxunicorns_category', function(result) {
                    old_category = result;
                    get_array_value_from_storage('uxunicorns_posts', function(result) {
                        old_posts = result;
                        var change_count = 0;
                        var i, loop_count = old_category.length;
                        if (category.length > old_category.length) {
                            change_count += category.length - old_category.length;
                        }
                        for (i = 0; i < loop_count; i ++) {
                            if(!category_item_equal(category[i], old_category[i]))
                                change_count ++;
                        }
                        loop_count = old_posts.length;
                        if (posts.length > old_posts.length) {
                            change_count += posts.length - old_posts.length;
                        }
                        for (var i = 0; i < loop_count; i ++) {
                            if(!post_item_equal(posts[i], old_posts[i]))
                                change_count ++;
                        }
                        if (change_count > 0) {
                            set_array_value_to_storage('uxunicorns_category', category);
                            set_array_value_to_storage('uxunicorns_posts', posts);
                            chrome.browserAction.setBadgeText({text: change_count > 9 ? '9+' : ''+change_count});
                        }
                    });
                });
            } else console.log('no posts recived from Firebase');
        });
    } else console.log('no categories recived from Firebase');
});
}


setInterval(updatedata, 180000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...