代码之家  ›  专栏  ›  技术社区  ›  Sumanth Jois

Redux saga Firebase回调

  •  1
  • Sumanth Jois  · 技术社区  · 8 年前

    我正在尝试在react native中使用redux saga注册firebase回调,但我不知道如何注册(我是redux saga新手)。下面是我想在redux传奇中编写的代码:

    firebase.auth().onAuthStateChanged((user) => {
          if (user) {
            console.log('user logged')
          }
       });
    
    1 回复  |  直到 8 年前
        1
  •  9
  •   Krasimir    8 年前

    将您的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);
      }
    }