You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向Firestore添加多条记录且避免新记录覆盖原有数据

问题原因

你当前的代码每次都对saveups集合下ID为uid的固定文档调用set方法,Firestore的set方法默认行为是直接覆盖目标文档的全量内容,因此新写入的数据会直接覆盖已有的旧记录。
运行效果截图

解决方案

根据你的使用场景选择对应实现方式:

  • 如果你需要为同一个用户添加多条独立的收支记录,不要用uid作为固定文档ID,调用add方法让Firestore为每条记录自动生成唯一ID,同时将用户uid作为字段存入文档方便后续查询:
    await this.$fire.firestore.collection('saveups').add({
      uid: uid,
      title: payload.title,
      amount: payload.amount
    })
    
  • 如果你确实需要修改uid对应文档的指定字段,不想覆盖文档内其他已有内容,给set方法添加merge配置开启合并写入:
    await this.$fire.firestore.collection('saveups').doc(uid).set({
      title: payload.title,
      amount: payload.amount
    }, { merge: true })
    
  • 如果你需要在同一个用户文档内用数组存储多条记录,使用内置的数组追加方法写入新内容:
    await this.$fire.firestore.collection('saveups').doc(uid).update({
      records: this.$fire.firestore.FieldValue.arrayUnion({
        title: payload.title,
        amount: payload.amount
      })
    })
    

内容的提问来源于stack exchange,提问作者Lev Vorobev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:00:06