Невозможно передать uid от созданного пользователя firebase

Я не могу передать uid от вновь созданного пользователя, созданного с помощью облачной функции firebase. Пользователь успешно создан, но документ в коллекции хранилища огня - нет. Когда я удаляю аргумент из .doc() таким образом, пользователь создается, но со случайным сгенерированным идентификатором uid, а не с тем, который был создан пользователем создания ofc. Я бы хотел передать uid от созданного пользователя в качестве имени документа. Uid доступен из ответа функции createUsr.

Я думаю, что я что-то не делаю правильно с тем, как я использую функцию async.

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: "[email protected]"
    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

Попробуйте удалить ожидание.

KToxcon 06.04.2021 21:21

@KToxcon Теперь он работает, но он создает пользователя из случайно сгенерированного uid, например, data.uid никогда не передавался

Filip Simin 06.04.2021 21:25

Можете ли вы записать данные в консоль и поделиться ими со мной?

KToxcon 06.04.2021 22:04

@KToxcon вопрос обновлен ответом из консоли

Filip Simin 06.04.2021 22:10
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
4
19
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте с этим:

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()
  }
}

Спасибо, это работает, я видел решение, когда добавлял ответ на вопрос ... не знаю, как я это пропустил. Спасибо за помощь :)

Filip Simin 06.04.2021 22:20

Другие вопросы по теме