Reactjs 无法从创建的用户firebase传递uid

Reactjs 无法从创建的用户firebase传递uid,reactjs,firebase,google-cloud-firestore,firebase-authentication,Reactjs,Firebase,Google Cloud Firestore,Firebase Authentication,我无法从新创建的用户传递uid,该用户是通过firebase云函数创建的。用户已成功创建,但firestore集合中的文档未创建。当我像这样从.doc()中删除参数时,将创建用户,但使用随机生成的uid,而不是创建用户ofc创建的uid。我想要的是将uid作为文档名从创建的用户传递到。可通过createUsr函数的响应获取uid const handleSubmit = async (values) => { const createUsr = functions.httpsCal

我无法从新创建的用户传递uid,该用户是通过firebase云函数创建的。用户已成功创建,但firestore集合中的文档未创建。当我像这样从
.doc()
中删除参数时,将创建用户,但使用随机生成的uid,而不是创建用户ofc创建的uid。我想要的是将uid作为文档名从创建的用户传递到。可通过
createUsr
函数的响应获取uid

const handleSubmit = async (values) => {
    const createUsr = functions.httpsCallable('createUsr')

    try {
        await createUsr({ email: values.email }).then((data) => {
            const id = data.uid
            const newDocRef = db.collection('students').doc(id)
            newDocRef.set({
              userID: id,
              firstName: values.firstName,
              lastName: values.lastName,
              access_type:  "student"
            })
        })
        success()
    } catch {
        error()
    }
  }
我认为我使用异步函数的方式做得不对

const handleSubmit = async (values) => {
    const createUsr = functions.httpsCallable('createUsr')

    try {
        await createUsr({ email: values.email }).then((data) => {
            const id = data.uid
            const newDocRef = db.collection('students').doc(id)
            newDocRef.set({
              userID: id,
              firstName: values.firstName,
              lastName: values.lastName,
              access_type:  "student"
            })
        })
        success()
    } catch {
        error()
    }
  }
来自控制台的数据响应

Object
  data:
    disabled: false
    displayName: null
    email: "test@gmail.com"
    emailVerified: false
    metadata: {creationTime: "Tue, 06 Apr 2021 19:06:19 GMT", lastSignInTime: null, lastRefreshTime: null}
    passwordHash: null
    passwordSalt: null
    phoneNumber: null
    photoURL: null
    providerData: []
    tenantId: null
    tokensValidAfterTime: "Tue, 06 Apr 2021 19:06:19 GMT"
    uid: "GHpc2ykVj3RPnMqPDDiDiViVvmc2"
  __proto__: Object
  __proto__: Object
试试这个:

const handleSubmit = async (values) => {
   const createUsr = functions.httpsCallable('createUsr')

   try {
    createUsr({ email: values.email }).then(({ data }) => {
        const { uid } = data;
        const newDocRef = db.collection('students').doc(uid);

        await newDocRef.set({
          userID: uid,          
          access_type:  "student",
          ...values
        });
    });

    success();
  } catch {
    error()
  }
}

尝试删除wait。@KToxcon它现在可以工作,但它会根据随机生成的uid(如
数据)创建用户。uid
从未被传递您能在控制台中记录数据并将其共享给吗me@KToxcon该问题已更新为concoleThanks的回复。如果这起作用,我看到的解决方案一旦添加了对该问题的回复。。。不知道我怎么会错过这个。谢谢你的帮助:)