【发布时间】:2023-03-14 09:21:02
【问题描述】:
我正在尝试将用户数据设置到实时数据库中。为此,我想要当前登录用户的 uid。但是当我使用 firebase.auth().currentUser.uid;我正在获取以前的 uid。
代码如下:
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
var firebaseConfig = {
apiKey: "*",
authDomain: "*",
databaseURL: "*",
projectId: "*",
storageBucket: "*",
messagingSenderId: "*",
appId: "*",
measurementId: "*"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
//sign up the user
const auth = firebase.auth();
var user_info_reference = firebase.database();
document.getElementById('register-form').addEventListener('submit', submitInfo);
//signup function
const signupForm = document.querySelector('#register-form');
signupForm.addEventListener('submit', (e) => {
e.preventDefault();
const email = signupForm['email_up'].value;
const password = signupForm['pass_up'].value;
//auth with firebase
auth.createUserWithEmailAndPassword(email, password).then(cred => {
console.log(cred.user);
signupform.reset();
user_id = firebase.auth().currentUser.uid;
}).catch(function(error){
var errorcode=error.code;
var errormsg=error.message;
});
});
//saving user info
//submitting info about name
function submitInfo(e){
e.preventDefault();
//get values
var name = getInputval('name_up')
saveInfo(name);
//get id val
function getInputval(id){
return document.getElementById(id).value;
}
function saveInfo(name){
var new_user_info = user_info_reference.ref('user_info/'+ auth.currentUser.uid);
new_user_info.set({
name: name
});
}
}
不要介意配置中的 (*),我只是不想显示该信息。
【问题讨论】:
-
前一个用户来自哪里?你退出吗?你能分享那段代码吗?此外,您可以像这样获取新用户的 uid:
const uid = cred.user.uid其中cred是由createUserWithEmailAndPassword方法返回的UserCredential。 -
我让它工作了,我没有从上次测试它的 id 注销。这就是问题
标签: javascript html firebase firebase-authentication