如何将Firebase对象传递给Redux Reducer

时间:2019-02-12 12:48:27

标签: reactjs react-redux

我从firebase检索数据,并将其作为有效负载传递给reducer。如何将其存储在reducer的数组中?

以下是我的代码。这里的doc3.data()给了我所需的数据,但我希望将它包含在化简器的单个对象中。我该如何一个接一个地存储它?

     var query1 = firestore.collection('Employers').where("phoneNo", "==", phoneno)
    .get()
    .then((querySnapshot) => {
        if(querySnapshot.empty === true) {
            dispatch({type: 'GET_JOB_ERROR', phoneno});
         }
        else{
        querySnapshot.forEach(function(doc) {
            console.log(doc.id, " => ", doc.data());
            console.log(doc.data().FirstName);
            var query2 = firestore.collection('Jobs').where("postedby", "==", doc.data().FirstName)
            .get()
            .then((doc2) => {
                if(doc2.empty === true) {
                    dispatch({type: 'GET_JOB_ERROR', phoneno});
                 }
                else{
                    doc2.forEach(function(doc3) {
                    //console.log(doc3.id, " => ", doc3.data());
                    jobs=doc3.data();
                    dispatch({type:'GET_JOB', payload:jobs});
                });
                }
            })

        });
        }
       }) 

减速器代码在下面

const initState = {
authError : '',jobs : [],

}

 const getJobs = (state = initState, action) => {

  switch(action.type){
    case 'GET_JOB':
    console.log('get job ',action.payload);
    return { 
      ...state,
    jobs :  [state.jobs, ...action.payload],
    authError : null,

    }    
    case 'GET_JOB_ERROR':
    console.log('get job error ',action.err);
    return {
        ...state,
    authError : 'Login Failed'
    }
    default:
    return state;
}
 }

0 个答案:

没有答案