Есть ли способ обновить определенный индекс из массива в Firestore - PullRequest
0 голосов
/ 02 января 2019

Есть ли способ обновить определенный индекс из массива в Firebase / firestore?

 export const editComment = (comment) => {
 return (dispatch, getState, { getFirebase, getFirestore }) => {
    const firestore = getFirestore();

    firestore.collection('topics').doc(comment.topicId).update({

     comments:  <--- this is array of objects


    }).then(() => {
      dispatch({ type: 'EDIT_COMMENT' })
    }).catch((error) => {
      dispatch({ type: 'EDIT_COMMENT_ERROR', error})
    })
  }
}

1 Ответ

0 голосов
/ 03 января 2019

Есть ли способ обновить определенный индекс из массива в Firestore?

Нет, нет!Это невозможно, потому что если вы хотите выполнить обновление, вам необходимо знать индекс этого конкретного элемента.Говоря о массивах Cloud Firestore, вы думаете, что все по-другому.

Поскольку мы создаем приложения, которые можно использовать в многопользовательской среде, попробуйте подумать, что может произойти, если пользователь захочет отредактироватьзначение с индексом 0, другой пользователь хочет удалить значение с индексом 0, и в то же время другой пользователь может захотеть добавить еще один элемент с индексом 0. Наверняка у вас будут очень разные результаты, и почему нет,исключить массив из границ.Так что действия Firestore с массивами немного отличаются.Таким образом, вы не можете выполнять такие действия, как вставка, обновление или удаление по определенному индексу.

Если эти два метода вам недостаточно помогают, вы должны получить весь документ, получить массив, изменить его и добавить обратнов базу данных.

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