0
我有2個文本框,一個用於用戶名,另一個用於密碼。Firebase - 未捕獲(承諾中)類型錯誤:無法讀取屬性
<input type="text" id="username">
<input type="text" id="password">
<input type="button" value="Login" onclick="authenticateUser()">
這裏是火力代碼:
function authenticateUser() {
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
database.ref('users/'+username).once('value').then(function(snapshot) {
var email = snapshot.val().email;
console.log(email);
});
}
它說
Uncaught (in promise) TypeError: Cannot read property 'email' of null
上面的代碼工作,如果用戶名匹配獲取的電子郵件,但如果用戶名沒有什麼存在,如果它不那麼會引發TypeError,如何捕獲該錯誤?
這遺憾的是不工作:
function authenticateUser() {
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
database.ref('users/'+username).once('value').then(function(snapshot) {
var email = snapshot.val().email;
console.log(email);
}, function(error) {
console.log('Invalid Username');
});
}
在電子郵件和密碼認證的情況下,有catch
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
在Java中,有像
catch(TypeError error) {
//Do whatever you want to do
}