javascript - firebaseui.js:formatted:9514 Uncaught TypeError: Cannot read property 'EmailAuthProvider' of undefined
问题描述
我想使用 Firebase UI 并且我使用了它,它第一次运行良好但坏了
但我认为这没有问题,因为它是 Firebase UI 本身的代码
这是我在index.html中的代码
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://www.gstatic.com/firebasejs/5.0.4/firebase.js"></script>
<script>
var config = {
apiKey: "**************************",
authDomain: "chat-77ca3.firebaseapp.com",
databaseURL: "https://chat-77ca3.firebaseio.com",
projectId: "chat-77ca3",
storageBucket: "chat-77ca3.appspot.com",
messagingSenderId: "312413147357"
};
firebase.initializeApp(config);
</script>
<title>Chat</title>
<script defer="defer" src="https://www.gstatic.com/firebasejs/5.0.4/firebase-app.js"></script>
<script defer="defer" src="https://www.gstatic.com/firebasejs/5.0.4/firebase-database.js"></script>
<script defer="" src="/__/firebase/init.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
<script src="https://cdn.firebase.com/libs/firebaseui/3.3.0/firebaseui.js"></script>
<link type="text/css" rel="stylesheet" href="https://cdn.firebase.com/libs/firebaseui/3.3.0/firebaseui.css" />
<script src="node_modules/firebaseui/dist/firebaseui.js"></script>
<script type="text/javascript">
var uiConfig = {
signInSuccessUrl: 'loggedin.html',
signInOptions: [
firebase.auth.GoogleAuthProvider.PROVIDER_ID,
firebase.auth.EmailAuthProvider.PROVIDER_ID,
firebaseui.auth.AnonymousAuthProvider.PROVIDER_ID
]
}
var ui = new firebaseui.auth.AuthUI(firebase.auth());
ui.start('#firebaseui-auth-container', uiConfig);
</script>
</head>
<body>
<div id="firebaseui-auth-container"></div>
</body>
</html>
这是 login.html 中的javascript
不包括 HTML
< script type = "text/javascript" >
initApp = function() {
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
var displayName = user.displayName;
var email = user.email;
var emailVerified = user.emailVerified;
var photoURL = user.photoURL;
var uid = user.uid;
var phoneNumber = user.phoneNumber;
var providerData = user.providerData;
user.getIdToken().then(function(accessToken) {
document.getElementById('sign-in-status').textContent = 'Signed in';
document.getElementById('sign-in').textContent = 'Sign out';
document.getElementById('account-details').textContent = JSON.stringify({
displayName: displayName,
email: email,
emailVerified: emailVerified,
phoneNumber: phoneNumber,
photoURL: photoURL,
uid: uid,
accessToken: accessToken,
providerData: providerData
}, null, ' ');
});
} else {
document.getElementById('sign-in-status').textContent = 'Signed out';
document.getElementById('sign-in').textContent = 'Sign in';
document.getElementById('account-details').textContent = 'null';
}
}, function(error) {
console.log(error);
});
};
window.addEventListener('load', function() {
initApp()
});
</script>
解决方案
推荐阅读
- node.js - 带有 sequelize 的打字稿:UserAdmin.belongsTo 调用的东西不是 Sequelize.Model 的子类
- python - 如何制作一个填充父级的 *args 和 **kwargs 的子类?
- c - 如何从 C 中的 PDF 文件中读取字符串?
- .net - 调试时会显示更改,但在构建应用程序后不会显示更改
- python - 无法在 python 中为长 URL 连接 sqlite3
- android - jdbc mysql驱动程序和签名apk Android Studio 4的问题
- java - 是否建议在 Java 中创建一个空的 POJO 类?
- css - 响应式表格和图像问题
- vim - 如何在 vim 或 neovim 中触发自动完成建议框(插件 neoclide/coc.vim)
- python - 使用python重命名嵌套json中的数字键