Как я могу вернуть значение моего userID с помощью firebase.auth (). OnAuthStateChanged (), в настоящее время он возвращает неопределенный - PullRequest
1 голос
/ 14 апреля 2019

Я пытаюсь получить идентификатор пользователя текущего пользователя, но он возвращает неопределенное значение.Как я могу это исправить?

getUser = async () => {
    let userID
    firebase.auth().onAuthStateChanged(user => {
        if (user) {
            userID = user.uid.toString()
            console.log(userID) // return the userID
        }
    })
    return userID
}
export const writeUserData = async (weight, reps, date, pathExercice) => {
    let pathID = await getUser()
    console.log(pathID) // returns undefined
    firebase.database().ref('users/9DLCsvffRRccr5e7YxPulzzjh2n1/' + pathExercice).push({
        weight,
        reps,
        date
    }).then((data) => {
        // console.log('data ', data)
    }).catch((error) => {
        console.log('error ', error)
    })
}

1 Ответ

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

Ваша функция getUser() использует обратный вызов, который не имеет ничего общего с функцией async/await в JS: идентификатор пользователя возвращается до запуска обратного вызова.

Использование firebase.auth().currentUser - путь. Проверьте документы здесь: https://firebase.google.com/docs/auth/web/manage-users

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...