我是 firebase 和 Javascript 的新手,我尝试了很多方法通过用户 ID 获取用户数据存储,但我得到的只是数据存储在“未定义”下。
这是我的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,新用户将替换之前在数据库中输入的用户,而不是作为新条目输入。
最佳答案
通过组合示例中的部分,您让事情变得有点复杂。
保存刚刚注册的用户需要这样:
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);
})
关于javascript - 无法获取 firebase 用户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42125238/