firebase JS无法在auth之后添加firstname lastname

时间:2018-05-11 16:37:45

标签: javascript firebase firebase-realtime-database firebase-authentication

我正在使用react-native redux app。这是我新创建的firebase数据库。

一切正常,用户也可以登录和注册。但是在注册后我有这个小代码我尝试.set({ firstname, lastname })名字,姓氏没有反映在数据库中。 (github repo:https://github.com/steelx/react-native-redux-app

    export const signUpUser = ({ firstname = "", lastname = "", email, password }) => (dispatch) => {
    dispatch({ type: SIGN_UP_REQUEST });

    firebase.auth().createUserWithEmailAndPassword(email, password)
        .then((user) => {

            // const currentUser = firebase.auth().currentUser;
            // currentUser.updateProfile({
            //     displayName: `${firstname} ${lastname}`,
            //     THIS WORKS
            // })

            firebase.database().ref('users/' + user.uid)
            // THIS DOES NOT WORK
                .set({ "firstname": 'AJINKYA', "lastname": 'AJINKYA' })
                .then(() => {
                    dispatch({ type: SIGN_UP_SUCCESS, payload: user });
                    Actions.home();
                });
        })
        .catch((error) => { dispatch({ type: SIGN_UP_FAILURE, payload: authFailMessage(error.code) }); });
};

Firebase规则

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "auth != null",
        ".write": "auth != null && auth.uid == $uid"
      }
    }
  }
}

1 个答案:

答案 0 :(得分:0)

对不起我的不好我在uid作为undefined传递给了我。最初在发布此问题之前,规则已设置为已锁定。

我的规则也错了。后来我将规则更新为=> 作为快速解决方案,我添加了这些规则。现在一切都很好。

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}