firebase在创建用户时添加用户信息(react.js)

时间:2017-07-11 15:57:03

标签: javascript reactjs firebase firebase-authentication

我在问这个问题之前研究过,但我找不到答案。

我在反应中制作了一个表格。当我单击该按钮时,它会使用createUserWithEmailAndPassword()方法创建一个用户。创建用户没有问题。我想添加额外的信息,比如;用户名:" Usernameeeee"到我的数据库。数据库将如下所示:

users {
     userUid1: {name: "Name User 1"}
     userUid2: {name: "Name User 2"}
     ....
       }

当我使用createUserWithEmailAndPassword()时,它会创建一个用户并将其登录。但正如您所看到的,我需要当前用户的ID。我知道如何正常使用它,firebase.auth()。currenUser ...但是在创建用户时我无法捕获用户的ID。它返回null;

export function signUpUser({email, password}) {
return function (dispatch){
firebase.auth().createUserWithEmailAndPassword(email, password)
.then(
    () => dispatch({type: USER_SIGNUP_SUCCESS})
)
.then(console.log(firebase.auth().currentUser))
.catch(error => {
    dispatch({type: USER_SIGNUP_FAIL, payload: error.message});
});
}

}

当我控制当前用户时,创建用户已完成但尚未登录。那么如何在创建用户时添加信息呢? (不是以其他方式登录后)

1 个答案:

答案 0 :(得分:2)

好的,我找到了一天之后的答案。我希望这对其他人有所帮助。如您所知,主要问题是在用户登录之后立即获取用户ID ...

所以这个问题是:

export function signUpUser({email, password, username}) {
    const db = firebase.database();
    return function (dispatch){
    firebase.auth().createUserWithEmailAndPassword(email, password)
      // here we get user id if creating is successful.
    .then(function(user){
        dispatch({type: USER_SIGNUP_SUCCESS}); // I dispatched some message.
        db.ref(`users/${user.uid}`).set({name: username}); // I added user
        console.log('uid:',user.uid)

})