小编典典

有什么方法可以从Firestore中的数组更新特定索引

reactjs

有什么方法可以从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})
    })
  }
}

阅读 273

收藏
2020-07-22

共1个答案

小编典典

有什么方法可以从Firestore中的数组更新特定索引?

不,那里没有!这是不可能的,因为如果要执行更新,则需要知道该特定元素的索引。在谈论Cloud Firestore阵列时,您可能会想到不同的东西。

由于我们正在创建可在多用户环境中使用的应用程序,因此请尝试考虑如果用户想要编辑索引0处的值,而其他用户想要删除索引0处的值,而同时某些用户想要删除该值,会发生什么情况其他用户可能希望在索引0处添加另一个项目。可以肯定的是,您最终将获得截然不同的结果,为什么不这样做,甚至会使数组超出范围异常。因此,带有数组的Firestore操作有点不同。因此,您无法在特定索引处执行诸如插入,更新或删除之类的操作。

如果这两种方法不能为您提供足够的帮助,则应获取整个文档,获取数组,对其进行修改,然后将其添加回数据库中。

2020-07-22