在Firebase中注册后,将用户信息保存到数据库中

时间:2019-09-18 13:38:57

标签: reactjs firebase google-cloud-firestore

我正在尝试使用uid作为文档ID将新创建的用户信息保存到Firestore中。创建用户后,我遇到的问题是为了将用户信息保存到Firestore集合中。 这是我已经尝试过的:

 const usersRef = firebase.firestore().collection('Users');

 firebase.auth().createUserWithEmailAndPassword(values.email, values.password).then(function(user){
  usersRef.doc(`${user.uid}`).set({
    firstName: values.firstName,
    lastName: values.lastName,
    username: values.username,
    uid: user.uid
  })
}).catch(function(error){
  // Handle Errors here.
    var errorCode = error.code;
    var errorMessage = error.message;
    // [START_EXCLUDE]
    if (errorCode == 'auth/weak-password') {
      alert('The password is too weak.');
    } else {
      alert(errorMessage);
    }
    console.log(error);
    // [END_EXCLUDE]
});

该代码应在创建后保存用户的信息,但是会导致以下错误: 收集文档ID不能是未定义的

1 个答案:

答案 0 :(得分:3)

您使用的方法会返回Promise<UserCredential>。您的代码应为:

const usersRef = firebase
  .firestore()
  .collection('Users');

firebase
  .auth()
  .createUserWithEmailAndPassword(values.email, values.password)
  .then(function(userCredential) {
    usersRef
      .doc(`${userCredential.user.uid}`)
      .set({
        firstName: values.firstName,
        lastName: values.lastName,
        username: values.username,
        uid: userCredential.user.uid
      })
      ...