Несогласованные данные Firebase при одновременном обновлении двух коллекций из React - PullRequest
2 голосов
/ 16 февраля 2020

У меня есть приложение React, в котором я храню данные в базе данных firebase и использую эти данные в качестве состояния в своем приложении.
У меня есть две коллекции:
- одна для хранения данных карты

first collection

секунда для хранения места и порядка, в котором карты будут отображать (только идентификатор карты в массиве) вторую коллекцию:

second collection

и оба используются в качестве состояния с 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)}

Может кто-нибудь помочь с этим? Я не смог найти ничего похожего на мой вопрос, и мне действительно нужно знать, есть ли решение для этого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...