当前位置: 首页 > 面试题库 >

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

商开济
2023-03-14
问题内容

有什么方法可以从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操作有点不同。因此,您无法在特定索引处执行诸如插入,更新或删除之类的操作。

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



 类似资料:
  • 问题内容: 用Google搜索它,发现了大量代码。但是他们中的任何一个都给了我我想要的。我想使一个普通数组不可变。我尝试了这个: 但这不起作用,我可以将5分配给array [0] …有什么方法可以使该数组不可变? 问题答案: 如果要将 其用作数组 ,则不能。 您必须为其创建包装器,以便在上引发一个异常,但是没有足够的环绕将允许您在以下情况上引发异常: 当然,元素的不变性完全是另一回事! 注意: 为

  • 问题内容: 我试图通过代码提高效率,但是我却放屁了。我编写的这段代码很好用,并且完全满足我的需要:它检查一个数组并删除一个未知索引处的Object。但是我觉得有一种更好,更有效的编写方法。我去了Array.remove(at :),但这需要一个已知的索引。我正在使用大的O表示法,并且不知道如何使它更易于处理。有任何想法吗? 问题答案: 使用(在 Swift 4.1 和更早版本中先前称为)使用谓词在

  • 我有一个用Java编写的管理应用程序,可以管理我的用户 我创建了一个自定义json 这就是我的JSON看起来的样子 在我的列表中,我只显示电子邮件地址 现在我的问题,例如,如果我单击包含电子邮件的列表,我想在对话框中显示与此电子邮件相关的数据,即、和 怎样​​我可以检索其他值吗​​使用电子邮件? 我在网上找不到任何关于它的信息

  • 问题内容: 假设我有一个方法m(),该方法将字符串数组作为参数。有什么方法可以在我打电话时直接声明该数组?即代替: 我可以只用一行代替它,而避免声明一个我永远不会使用的命名变量吗? 问题答案: