Как я могу обновить профиль, если данные не определены в разделе базы данных Firebase? - PullRequest
0 голосов
/ 05 апреля 2019

Я не могу обойти эту ошибку TypeError: createdUser.updateProfile is not a function at _callee2$ (authActions.jsx:22) при настройке моей регистрационной формы через Firebase.

Когда я удаляю закомментированный раздел кода «Обновление профиля авторизации», форма регистрации проходит, но мой документ не определен в разделе базы данных Firebase.

export const registerUser = (user) => 
  async (dispatch, getState, {getFirebase, getFirestore}) => {
    const firebase = getFirebase();
    const firestore = getFirestore();
    try {
      // create the user in firebase auth
      let createdUser = await 
      firebase.auth().createUserWithEmailAndPassword(user.email, user.password);
    //update the auth profile
    await createdUser.updateProfile({
      displayName: user.displayName
    }) 
    // create a new profile in firestore
    let newUser = {
      displayName: user.displayName,
      createdAt: firestore.FieldValue.serverTimestamp()
    }
    await firestore.set(`users/${createdUser.uid}`, {...newUser})
    dispatch(closeModal());
  } catch (error) {
    console.log(error)
    throw new SubmissionError({
     _error: error.message
    })
  }
}

1 Ответ

0 голосов
/ 08 апреля 2019

createUserWithEmailAndPassword возвращает обещание, которое разрешается с UserCredential.

Вам необходимо изменить следующее:

let userCredential = await 
    firebase.auth().createUserWithEmailAndPassword(user.email, user.password);
//update the auth profile
await userCredential.user.updateProfile(...);
...