我有 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)}
有人能帮忙吗 ?我找不到与我的问题类似的任何东西,我真的需要知道是否有解决方案