我是firebase和Javascript的新手,我尝试过很多方法通过userid获取用户数据存储,但我得到的是数据存储在“未定义”下。
这是我的JS代码
function handleRegister() {
var fname = document.getElementById('fname').value;
var lname = document.getElementById('lname').value;
var email = document.getElementById('email').value;
var password = document.getElementById('password').value;
var ref = firebase.database().ref();
console.log(email);
console.log(fname);
if (email.length < 4) {
alert('Please enter an email address.');
return;
}
if (password.length < 4) {
alert('Please enter a password.');
return;
}
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(function(user) {
var uid = user.uid;
var postData = {
Firstname: fname,
Lastname: lname,
email: email,
};
// Get a key for a new Post.
var newPostKey = firebase.database().ref().child('Users').push().uid;
var updates = {};
updates['/Users/' + newPostKey] = postData;
// updates['/user-posts/' + '/' + newPostKey] = postData;
return firebase.database().ref().update(updates);
})
}
我想要做的是,在注册新用户之后,我想将用户信息(即名字和姓氏)保存到数据库中,在他们认证期间生成的各自的uid下。 但目前我无法让uid和新用户替换先前在DB中输入的用户,而不是作为新条目输入。
答案 0 :(得分:2)
通过组合样本中的部分,你会使事情变得复杂。
保存刚注册的用户需要:
firebase.auth().createUserWithEmailAndPassword(email, password) .then(function(user) {
var root = firebase.database().ref();
var uid = user.uid;
var postData = {
Firstname: fname,
Lastname: lname,
email: email
};
root.child("Users").child(uid).set(postData);
})