Redux 传奇 Firebase 回调

Redux saga Firebase callback

我正在尝试在 react-native 中使用 redux-saga 注册一个 firebase 回调,但我无法弄清楚如何(我是 redux-saga 的新手)。下面是我想在 redux saga 中编写的代码:

firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        console.log('user logged')
      }
   });

将您的 firebase 调用包装在这样的承诺中:

// firebase.js
export function onAuthStateChanged() {
  return new Promise((resolve, reject) => {
    firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        resolve(user);
      } else {
        reject(new Error('Ops!'));
      }
    });
  });
}

// in your app
import { onAuthStateChanged } from './firebase';

function * saga() {
  try {
    const user = yield call(onAuthStateChanged);
    // ...
  } catch (error) {
    console.error(error);
  }
}