我正在使用redux-saga和redux-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');
}
}
}
我在做什么错了?
答案 0 :(得分:0)
getIdToken返回一个承诺,请确保您使用getIdToken.then((token) => console.log(token))