У меня есть приложение React, в котором я храню данные в базе данных firebase и использую эти данные в качестве состояния в своем приложении.
У меня есть две коллекции:
- одна для хранения данных карты
секунда для хранения места и порядка, в котором карты будут отображать (только идентификатор карты в массиве) вторую коллекцию:
и оба используются в качестве состояния с mapStateToProps
.
Однако, когда я отправляю действие по добавлению новой карты и обновлению обеих коллекций одновременно (с пакетной записью), я не получаю идентификатор документа i только что обновил, только данные.
Это функция, которую я отправляю для обновления обеих коллекций.
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)}
И приложение не перезаписывается сделать сам, хотя первая коллекция тоже изменилась. После ссылки на страницу руководства sh все появляется и работает нормально.
cardOrder: Array(3)
0: {id: "2", order: Array(6)}
1: {id: "3", order: Array(2)}
2: {id: "order", order: Array(3)}
Может кто-нибудь помочь с этим? Я не смог найти ничего похожего на мой вопрос, и мне действительно нужно знать, есть ли решение для этого