我尝试使用以下代码对新注册的用户进行身份验证,但它甚至无法初始化 firebase,并弹出此错误:
Uncaught ReferenceError: firebase is not defined
下面是我的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>register</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script src='https://cdn.firebase.com/js/client/2.4.2/firebase.js'></script>
</head>
<body>
<script>
var config = {
databaseURL: 'https://apcs-4bfaa.firebaseio.com/'
};
firebase.initializeApp(config);
var ref = new Firebase("https://apcs-4bfaa.firebaseio.com/");
function registerUser() {
var email = document.getElementById("email").value;
var password = document.getElementById("password").value;
ref.auth().createNewUserWithEmailAndPassword(email, password);
}
</script>
<div class="form">
<div id="error"></div>
<form onsubmit="registerUser();">
<label>Email:</label>
<input type="text" name="email" id="email"><br>
<label>Password:</label>
<input type="password" name="pwd" id="password"><br>
<input type="submit" value="Sign Up"><br>
</form>
</div>
</body>
</html>
最佳答案
您的代码混合了旧版 2.4.2
API 和 3.0
SDK。
不再有 new Firebase()
调用。您需要使用新的 SDK,当前为 3.0.3
,然后配置您的应用。
<script src="https://www.gstatic.com/firebasejs/3.0.3/firebase.js"></script>
<script>
// Initialize Firebase
var config = {
apiKey: '<your-api-key>',
authDomain: '<your-auth-domain>',
databaseURL: '<your-database-url>',
storageBucket: '<your-storage-bucket>'
};
firebase.initializeApp(config);
</script>
配置后您可以创建引用。
firebase.database().ref()
所以在你的情况下会是:
<script>
var config = {
databaseURL: 'https://apcs-4bfaa.firebaseio.com/'
};
firebase.initializeApp(config);
// new 3.0 SDK method!
var ref = firebase.database().ref();
function registerUser() {
var email = document.getElementById("email").value;
var password = document.getElementById("password").value;
firebase.auth().createNewUserWithEmailAndPassword(email, password);
}
</script>
关于javascript - Uncaught ReferenceError : Firebase is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37617660/