2

我有 React 应用程序,我将数据存储在 firebase 中,并将这些数据用作我的应用程序中的状态。
我有两个集合:
- 一个用于存储卡数据

第一次收藏

-second 用于存储卡片将呈现的位置和顺序(仅数组中的卡片 ID)第二个集合:

第二个集合

并且两者都用作状态mapStateToProps
但是,当我调度操作以添加新卡并同时更新两个集合(使用批量写入)时,我没有得到我刚刚更新的文档的 ID,只有数据。

这是我调度以更新两个集合的功能。

export const createTodo = (cardOrder,taskName) => {
return  (dispatch, getState, { getFirebase, getFirestore }) => {
    const firestore = getFirestore();
    var cardsColRef = firestore.collection("todos")
    var orderDocRef = firestore.collection("cardOrder").doc(taskName)
    var newCardRef = firestore.collection('todos').doc()
    var batch = firestore.batch()
    batch.set(newCardRef,{title : "",assignment:"",content: ""})
    batch.update(orderDocRef,{order:[...cardOrder,newCardRef.id]})
    batch.commit()}

批量写入前的数据。
cardOrder: Array(3) 0: {id: "2", order: Array(5)} 1: {id: "3", order: Array(2)} 2: {id: "order", order: Array(3)}

批量写入后的数据。
cardOrder: Array(3) 0: {order: Array(6)} 1: {id: "3", order: Array(2)} 2: {id: "order", order: Array(3)}

即使第一个集合也发生了变化,应用程序也不会重新呈现自己。手动页面刷新后,一切都会出现并且工作正常。
cardOrder: Array(3) 0: {id: "2", order: Array(6)} 1: {id: "3", order: Array(2)} 2: {id: "order", order: Array(3)}

有人能帮忙吗 ?我找不到与我的问题类似的任何东西,我真的需要知道是否有解决方案

4

0 回答 0