代码有效,但我想知道是否有人可以帮助我将其转换为更好的异步/等待语法。
代码使用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 });
}
}
任何建议都将不胜感激!
答案 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的个人项目写了一些非常相似的东西。