小编Ale*_*nes的帖子

async/await with firebase .on()数据库侦听器

我正在设计一个消息传递应用程序,使用redux作为我的状态管理器和firebase来存储我的数据.我已经开始以这种方式编写数据库侦听器:

const fetchMessages = roomKey => async dispatch => {
  const db = firebase.database();
  let { messages } = await db.ref(`messages/${roomKey}`).on('value');
dispatch({
  type: SET_MESSAGES,
  payload: messages,
})
Run Code Online (Sandbox Code Playgroud)

};

所有这些基本上都是通过房间密钥获取消息,然后调度一个动作,将消息设置为redux状态.

传统上,这将写成:

db.ref(`messages/${roomKey}`).on('value', snapshot => {
  const messages = snapshot.messages;
  dispatch({
    type: SET_MESSAGES,
    payload: messages,
  })
});
Run Code Online (Sandbox Code Playgroud)

每次发生变化时messages/${roomKey},我的调度功能都会被执行.我想知道这是否会使用async await语法相同,如果没有,我怎么能使它工作.

希望这足够详细!

async-await firebase firebase-realtime-database redux react-redux

1
推荐指数
1
解决办法
1840
查看次数