我正在使用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,它可以正常工作。
答案 0 :(得分:0)
您必须像“ @ firebase / app”一样调用firebase.app.js
查看我的答案答案 1 :(得分:-1)
我认为您需要修改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
添加到垫片中。
请确认这是否有效:)