在firebase中使用Async / Await | react-redux |反应天然

时间:2017-11-07 21:20:03

标签: javascript reactjs firebase asynchronous react-native

代码有效,但我想知道是否有人可以帮助我将其转换为更好的异步/等待语法。

代码使用firebase api获取数据并使用react-redux和thunk中间件处理响应。

我正在构建一个React-Native应用。 " forEach"在" childSnapshot"我似乎无法让它更整洁,我需要用JSON =>对分数值进行排序。 Node.js + Firebase orderByChild not working

  export const getScores = () => async dispatch => {
  try {
    let res =[];
    await firebase.database().ref("game_score_ref").orderByChild("score").once("value", snapshot => {
      snapshot.forEach(childSnapshot =>{
        res.push(childSnapshot.toJSON())
      })
    });
    dispatch({ type: GET_SCORES, payload: res });
  }catch(err){
    dispatch({ type: GET_SCORES_ERROR, payload: err });
  }
}

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:0)

export const getScores = () => async dispatch => {
  try {
    const score = await firebase.database().ref("game_score_ref").orderByChild("score")
    return score.once("value", snapshot => {
      const res = snapshot.map(childSnapshot => childSnapshot.toJSON())
      return dispatch({ type: GET_SCORES, payload: res });
    })
  }catch(err){
    dispatch({ type: GET_SCORES_ERROR, payload: err });
  }
}

试一试。我为firebase的个人项目写了一些非常相似的东西。