这是我在.js中的代码
$("#loginBtn").click(
function(){
var email = $("#loginEmail").val();
var password = $("#loginPassword").val();
if(email != "" && password != ""){
$("#loginProgress").show();
$("#loginBtn").hide();
$("#registerBtn").hide();
firebase.auth().signInWithEmailAndPassword(email,
password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
$("#loginError").show().text(errorMessage);
$("#loginProgress").hide();
$("#loginBtn").show();
$("#register_account_Btn").hide();
$("#back_btn").hide();
});
}
}
);
/* REGISTER PROCESS */
$("#register_account_Btn").click(
function () {
var email = $("#regEmail").val();
var password = $("#regPassword").val();
if(email != "" && password != ""){
$("#loginProgress").show();
$("#loginBtn").hide();
firebase.auth().createUserWithEmailAndPassword(email,
password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
$("#loginError").show().text(errorMessage);
$("#loginProgress").hide();
$("#loginBtn").show();
$("#register_account_Btn").hide();
$("#back_btn").hide();
});
}
我在互联网上找到了它,但不知道在哪里插入。 这是正确的吗?
var uid = firebase.auth().currentUser.uid;
firebase.database().ref().child('accounts').child(uid).set({
email: user.email,
userId: uid
})
我应该创建另一个功能吗?
,这些是我的Firebase数据库中的规则。建议使用此方法吗? 附加问题: 我想创建一个用户角色:老师和学生。老师可以创建教室,添加学生,查看学生列表。学生可以查看他/她的同学和老师。我该怎么办?
{
"rules": {
"users": {
"$uid": {
".read": false,
".write": "$uid === auth.uid"
}
}
}
}
诚挚的道歉,但我对此并不陌生;(
答案 0 :(得分:4)
firebase.auth().createUserWithEmailAndPassword
函数返回一个Promise: firebase.User
。
您只会在代码中捕获异常,如果将.then
链接到函数上,则可以获取用户信息并将该用户保存到数据中。
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(user => {
// Save user here.
return firebase.database().ref('/users/' + user.uid).set({
email: user.email,
uid: user.uid
});
})
.catch(function(error) {
// Handle Errors here.
});
您在老师/学生周围的其他问题非常广泛-尝试将其缩小为一个解决方案,如果您遇到某些具体问题,则创建一个新问题。
答案 1 :(得分:1)
自Firebase JavaScript SDK版本5.0.0起,createUserWithEmailAndPassword()
返回一个Promise,其中包含新用户的凭据作为UserCredentials
对象而不是User
对象。
但是,UserCredentials
对象包含User
对象,因为它是user
属性,您可以从@sketchthat's answer中获取新的电子邮件和用户ID。
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(credential => {
// Save user here.
return firebase.database().ref('/users/' + credential.user.uid).set({
email: credential.user.email,
uid: credential.user.uid
});
})
.catch(function(error) {
// Handle Errors here.
});