Redux saga Firebase回调

Joi*_*ois 0 react-native redux redux-saga

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

firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        console.log('user logged')
      }
   });
Run Code Online (Sandbox Code Playgroud)

Kra*_*mir 9

将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);
  }
}
Run Code Online (Sandbox Code Playgroud)