在子集合中添加/删除文档无法正确更新状态

时间:2019-02-01 20:02:17

标签: reactjs react-redux google-cloud-firestore

我正在尝试添加子集合中的文档。在Firebase控制台中已正确添加了文档,但是我的Firestore状态未正确更新。在检查firestore.ordered之后的第一个文档ID之外,所有文档ID均未定义。但是,如果我很难刷新浏览器,它们都将获得其ID。

这是我调度操作的方式:

export const addActionCard = () => {
  return (dispatch, getState, { getFirestore }) => {
    // make async call to database
    const firestore = getFirestore();

 firestore.collection('retros').doc('oiWiKlsrI7Q2LqNXVaSA').collection('cardsAction').add({
      authId: '1337',
      content: 'this is a action card'
    }).then(() => {
      dispatch({ type: 'CREATE_CARD_SUCCESS' });
    }).catch(err => {
      dispatch({ type: 'CREATE_CARD_ERROR' }, err);
    });
  }
};

这就是我使用firestoreConnect获取数据的方式:

const mapStateToProps = (state, ownProps) => {
  console.log(state);
  return {
    retro: state.firestore.ordered.retros,
    cards: state.firestore.ordered.actionz
  } 
}

export default compose(
  firestoreConnect((props) => [
    { collection: 'retros', doc: props.match.params.retroId },
    { collection: 'retros', doc: props.match.params.retroId, subcollections: [{ collection: 'cardsAction', }],
    storeAs: 'actionz' },
  ]),
  connect(mapStateToProps, mapDispatchToProps)
)(RetroDetails)

这是当我console.log firestore状态时的外观:

state of my firestore

我已经通过codeandbox提供了该问题的演示。复制的步骤在以下URL上:https://wz6j0lj54k.codesandbox.io/retro/oiWiKlsrI7Q2LqNXVaSA

源文件:https://codesandbox.io/s/wz6j0lj54k

0 个答案:

没有答案