有什么方法可以从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}) }) } }
有什么方法可以从Firestore中的数组更新特定索引?
不,那里没有!这是不可能的,因为如果要执行更新,则需要知道该特定元素的索引。在谈论Cloud Firestore阵列时,您可能会想到不同的东西。
由于我们正在创建可在多用户环境中使用的应用程序,因此请尝试考虑如果用户想要编辑索引0处的值,而其他用户想要删除索引0处的值,而同时某些用户想要删除该值,会发生什么情况其他用户可能希望在索引0处添加另一个项目。可以肯定的是,您最终将获得截然不同的结果,为什么不这样做,甚至会使数组超出范围异常。因此,带有数组的Firestore操作有点不同。因此,您无法在特定索引处执行诸如插入,更新或删除之类的操作。
如果这两种方法不能为您提供足够的帮助,则应获取整个文档,获取数组,对其进行修改,然后将其添加回数据库中。