firebase JS не может добавить имя и фамилию после аутентификации

Я работаю с реактивным приложением redux. Это моя недавно созданная база данных firebase.

Все работает нормально, пользователь может войти в систему и зарегистрироваться. Но у меня есть этот небольшой код после регистрации. Я пытаюсь использовать .set({ firstname, lastname }) имя, фамилию, которая не отражается в базе данных. (репозиторий github: 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"
      }
    }
  }
}

person STEEL    schedule 11.05.2018    source источник
comment
Что здесь firstname и lastname?   -  person Frank van Puffelen    schedule 11.05.2018
comment
тест, тест String   -  person STEEL    schedule 11.05.2018
comment
я обнаружил, что могу установить только displayName. Это отлично работает == ›firebase.auth (). CurrentUser.updateProfile ({displayName: ${firstname} ${lastname}}) Но мой вопрос все еще остается, что, если я хочу добавить запись в базу данных.   -  person STEEL    schedule 11.05.2018
comment
Прохладный. Можете ли вы увидеть, сможете ли вы воспроизвести это, когда жестко закодируете эти значения в set, так что .set({ firstname: "test", lastname: "test" }). Если это все еще воспроизводится, мы можем исключить проблемы области видимости переменных.   -  person Frank van Puffelen    schedule 11.05.2018
comment
Я сделал это .set({ "firstname": 'AJINKYA', "lastname": 'AJINKYA' }), все равно бесполезно   -  person STEEL    schedule 11.05.2018
comment
Хммм ... это может быть проблема с разрешениями. Можете ли вы добавить catch к set и зарегистрировать любую ошибку. Итак .set({ "firstname": 'AJINKYA', "lastname": 'AJINKYA' }).catch((error) => { console.error(error); }).then(...   -  person Frank van Puffelen    schedule 11.05.2018


Ответы (1)


Извини, что плохо, я передавал uid как undefined в исх. и первоначально перед отправкой этого вопроса ПРАВИЛА были установлены на Заблокировано.

и мои правила тоже были неправильными. Позже я обновил правила до => в качестве быстрого исправления я добавил эти правила. Теперь все работает нормально.

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}
person STEEL    schedule 11.05.2018