我想让我的创建用户在我从Firebase注册时通过其用户uid添加到数据库中。
当前我的代码正在运行,只是我不明白为什么将数据保存到我的Firebase中时,名称(假定是创建的用户uid)显示为“ undefined”。但是抓取并保存的数据是正确的。
我的firebase数据库显示未定义:https://imgur.com/ATRsmKe
我要保存和创建用户的JS代码:
/*Show Login User*/
// Firebase Variables
var auth = firebase.auth();
$(document).ready(function () {
//Pass parameter from form to Firebase
$('.addpic').on('submit', event => {
event.preventDefault();
const name = $('#name').val();
const hp = $('#hp').val();
const email = $('#email').val();
const password = $('#password').val();
const role = $('#role').val();
//Firebase user authentication
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(user => {
//set data into User database
firebase.database().ref('Admin/Person In Charge' + "/" + user.uid).set({
Name: name,
ContactNo: hp,
Email: email,
Password: password,
Role: role
}).then(success => {
console.log(user);
window.alert("Registered");
window.location = "user.html";
});
})
.catch(function (error) {
var errorCode = error.code;
var errorMessage = error.message;
window.alert("Error : " + errorMessage);
});
});
});
我希望将数据保存在创建用户的UID下。我尝试了所有可能的解决方案,但没有一个对我有用。
答案 0 :(得分:1)
您应该看看return type of createUserWithEmailAndPassword
。如果我正确阅读了文档,它将返回firebase.auth.UserCredential
的实例,而不是实际用户。我认为您实际上需要在该凭证对象中再深入一层并获得user.uid
。
示例
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(userCredential => {
//set data into User database
firebase.database().ref('Admin/Person In Charge' + "/" + userCredential.user.uid).set({
Name: name,
ContactNo: hp,
Email: email,
Password: password,
Role: role
}).then(success => {
console.log(user);
window.alert("Registered");
window.location = "user.html";
});
})
您将来可以通过user
检查then
中console.log()
的值来解决这个问题。