首页 > 解决方案 > Firebase getIdToken 返回对象

问题描述

我正在使用redux-sagaredux-saga-firebase库将firebase与 redux-sagas 集成。问题是当我登录用户时,例如使用signInWithEmailAndPassword甚至连接channel以获取已签名用户并跟踪用户更改,我无法获得正确的令牌。getIdToken,getIdTokenResult方法只返回具有以下表示的对象:

{
    a: 0
    b: qb {a: null, g: ƒ, b: ƒ, f: undefined, next: null, …}
    c: A {a: 0, i: undefined, c: A, b: qb, f: qb, …}
    f: qb {a: null, g: ƒ, b: ƒ, f: undefined, next: null, …}
    g: false
    h: false
    i: undefined
}

这是代码:

function* loginSaga({ payload: { email, password } }) {
    try {
        yield call(
            reduxSagaFirebase.auth.signInWithEmailAndPassword,
            email,
            password,
        );
    } catch (error) {
        yield put(loginFailure(error));
    }
}

function* loginStatusWatcher() {
    const channel = yield call(reduxSagaFirebase.auth.channel);

    while (true) {
        const { user } = yield take(channel);
        if (user) {
            yield put(loginSuccess());
        } else {
            console.log('Put logout action here');
        }
    }
}

我究竟做错了什么?

标签: javascriptfirebasefirebase-authenticationredux-saga

解决方案


getIdToken 返回一个承诺,确保你使用getIdToken().then((token) => console.log(token))


推荐阅读