Requirejs - ошибка при попытке использовать сценарии Firebase - PullRequest
0 голосов
/ 28 мая 2018

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

Это скрипт main.js

require.config({
    paths: {
        'firebase': '/scripts/lib/firebase-app',
        'firebase-auth': '/scripts/lib/firebase-auth',
        'firebase-database': '/scripts/lib/firebase-database'
    },
    shim: {
        'firebase-auth': ['firebase'],
        'firebase-database': ['firebase']
    }
});

У меня есть это в firebase-init.js

define(['firebase'], function(firebase) {
    var config = {
        apiKey: "...",
        authDomain: "...",
        databaseURL: "...",
        projectId: "...",
        storageBucket: "...",
        messagingSenderId: "..."
    };
    firebase.initializeApp(config);
});

Это login.js

define(['firebase', 'firebase-auth', 'firebase-init'], 
       function(firebase, firebaseAuth, firebaseInit) {
    ...
    code to login/logout user
    ...
});

Когда я его запускаю, я получаю эту ошибку.

  TypeError
    columnNumber: 31509
    ​fileName: "http://localhost:3000/scripts/lib/firebase-auth.js"
    ​lineNumber: 1
    ​message: "n is undefined"
    ​stack: "Zn@http://localhost:3000/scripts/lib/firebase-auth.js:1:31509\nbi@http://localhost:3000/scripts/lib/firebase-auth.js:1:33789\n@http://localhost:3000/scripts/lib/firebase-auth.js:1:69619\n@http://localhost:3000/scripts/lib/firebase-auth.js:1:186\n@http://localhost:3000/scripts/lib/firebase-auth.js:1:2\n"

И эту.

Error: Cannot instantiate firebase-auth - be sure to load firebase-app.js first.

Я впервые использую Requirejs.У меня неправильная конфигурация?На вкладке сети я вижу, что firebase-app.js загружается до firebase-auth.js.

Спасибо.

PS: Хорошо работает, если я использую firebase.js вместо того, чтобы отдельно использовать firebase-app.js и firebase-auth.js.

Ответы [ 2 ]

0 голосов
/ 03 января 2019

вы должны вызывать firebase.app.js как "@ firebase / app"

см. Мой ответ здесь Ошибка загрузки firebase js с requirejs

0 голосов
/ 12 июля 2018

Я думаю, вам нужно изменить свой модуль firebase-init.js, чтобы сначала загрузить все модули Firebase, так как они должны быть загружены перед вызовом firebase.initializeApp.

define(['firebase', 'firebase-auth', 'firebase-database'], function(firebase) {
    var config = {
        apiKey: "...",
        authDomain: "...",
        databaseURL: "...",
        projectId: "...",
        storageBucket: "...",
        messagingSenderId: "..."
    };
    firebase.initializeApp(config);
});

Также вы должны рассмотреть возможность добавления exports к прокладке.

Пожалуйста, подтвердите, работает ли это:)

...