首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Firestore从子集合中删除单据后,未将单据添加到子集合

Firestore是一种云数据库服务,由Google Cloud提供。它是一种灵活的、可扩展的NoSQL文档数据库,适用于构建实时应用程序。

在Firestore中,数据以文档的形式组织,每个文档都有一个唯一的标识符和一组键值对。文档可以包含子集合,这些子集合可以进一步包含其他文档。当从子集合中删除一个文档后,Firestore不会自动将该文档添加回子集合。

要解决这个问题,您可以使用Firestore的事务功能来确保在删除文档后将其添加回子集合。事务是一种原子操作,可以确保在多个并发操作中保持数据的一致性。

以下是一个示例代码,演示了如何使用Firestore事务来删除子集合中的文档并将其添加回子集合:

代码语言:txt
复制
const admin = require('firebase-admin');
const db = admin.firestore();

async function deleteAndAddDocumentToSubcollection(parentDocId, subcollectionName, documentId, documentData) {
  const parentDocRef = db.collection('parentCollection').doc(parentDocId);
  const subcollectionRef = parentDocRef.collection(subcollectionName);
  
  try {
    await db.runTransaction(async (transaction) => {
      const parentDocSnapshot = await transaction.get(parentDocRef);
      const subcollectionSnapshot = await transaction.get(subcollectionRef);
      
      if (parentDocSnapshot.exists && subcollectionSnapshot.exists) {
        // 删除子集合中的文档
        transaction.delete(subcollectionRef.doc(documentId));
        
        // 将文档添加回子集合
        transaction.set(subcollectionRef.doc(documentId), documentData);
      }
    });
    
    console.log('删除成功并将文档添加回子集合');
  } catch (error) {
    console.error('删除和添加文档时出错:', error);
  }
}

// 使用示例
deleteAndAddDocumentToSubcollection('parentDocId', 'subcollectionName', 'documentId', { /* documentData */ });

在上面的示例中,我们首先获取父文档和子集合的快照,然后在事务中删除子集合中的文档并将其添加回子集合。如果父文档和子集合存在,并且事务成功执行,将打印"删除成功并将文档添加回子集合"。否则,将打印错误消息。

对于Firestore的推荐产品和产品介绍链接地址,您可以参考腾讯云的云数据库MongoDB和云数据库TDSQL for MySQL产品,它们提供了类似的功能和性能。您可以在腾讯云官方网站上找到更多关于这些产品的详细信息和文档。

请注意,由于要求不能提及特定的云计算品牌商,上述推荐仅供参考,您可以根据实际需求选择适合的云计算品牌商和产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在管家婆软件已过账单据怎么修改删除

红冲单据具体操作如下:在 经营历程 ,选中做错的单据,点击左下角的红冲单据即可。然后重新做一张正确的的单据。二. 第二种方法就是直接修改/删除单据。...修改/删除单据的具体操作如下:1. 在 系统维护-用户配置-录单配置 ,找到 系统允许修改、删除已过账单据 这一选项,把后面的 √ 打上。2....然后你会发现在 经营历程 会多出来两个按钮, 我们选中做错的单据,点击左下角的修改单据或者删除单据即可。修改/删除单据不会留下任何痕迹,不利于以后核对。...6)使用了总账管理生成了凭证,得删除凭证才行。7)发票管理开过发票的不能直接修改或删除,需要将发票管理里开票记录删除才行。8)按单结算了的单据不能直接修改或删除,需要将对应结算的收付款单删除才行。...9)已计算过返利、获利的单据不能修改或删除。不支持修改或删除单据:借欠、组合套件销售、代销、委外、账外、生产组装、配送、返利获利单、零售。

10K70

k3 Bos开发百问百答

【摘要】删除符合条件的单据 版本:K310.2SP1+Sp2+10.3 问题描述:符合一定条件的单据不允许删除。是否有删除前的事件可以调用,或者其他方法?...能删除此索引吗? 【解答】 这是10.2的一个设计不合理的地方,10.3没有这个问题了。可以先删除,设计成功加上就好了。 【摘要】表体当中的当前记录号,不能在套打中打印。...【解答】 在单据添加一个字段保存,打开这个套打文件可以自已添加一个字段,在设置对象属性时可以指定到单据的这个字段。...在实际作业,单据反审核仍然不能修改? 这是什么原因?...最不方便使用的是在单据定义时,一旦添加上字段之后便不能删除,否则便会将单据上的所有字段全部删除。新增的单据、多级审核流程、单据转换流程保存也不能删除

4.6K30
  • 看专家怎么用 Power BI 算零售业务的订单数,知道差距了

    POS 产生的单据通常包括以下三类: 正常单据单据每件商品的销售数量均为正数; 退货单据单据的销售数量均为负数; 换货单据单据的销售数量有正有负。...这里,整单销售件数大于 0,则该单据作为有效单据。包括正常销货的单据,以及换货单据退 1 件换 2 件的情景。....销量] > 0 ) ) 其中,VALUES( 'Model-Factsales'[单据编号] ) 返回在外部筛选环境下,所有非重复单据编号集合(表的形态,却可以按集合来理解其逻辑的数据结构)...,FILTER 函数对该集合(表)进行迭代,在迭代对每行进行上下文转换,也就可以对每个单据编号进行处理,按 [Core.销量] > 0 在事实表捞取满足条件的单据编号,进行非重复计数,得到有效单据数。...这里,有效单据考虑整单销售件数大于 0 且扣减掉整单销售件数小于 0 的订单数。

    2K30

    SAP SD基础知识之主数据

    五,不完全日志Incompletion log 在配置可以定义那些Fields将会出现在不完全日志(如果用户没有输入)。 该功能在Sales order 和 delivery可用。...SD模块的不完全日志,是一个很重要的功能。...还有就是SD的一些单据,业务人员可以很方便的物理上的删除,销售订单交货单等单据单据创建可以方便物理上删除。...而MM模块里的一些单据,比如采购申请,采购订单等单据,一旦创建成功产生单据号以后,业务如果要删除,则只能为这些单据打上删除标记,普通业务人员无法物理上彻底删除这些采购单据。...注意:在配置,我们可以定义价格、费用/折扣、运费、税的依赖条件。 - 完 - 2020-2-19 整理于苏州市。

    76511

    SAP ERP常用单据格式设计方案

    物料名称变更为物料号;规格型号/图号变更为物料描述 2、 “维修状态”为新增字段,用于记录维修的结果 3、 应修复日期、维修状态、其他特殊要求为手工填写,其他自动打印 7 调拨单 ?...说明: 1、本单据一式三联,删除了“单价”、“金额”、“图号”字段,在SAP系统,库存地点之间的调拨是不会对财务产生影响的,故可以删除。...说明: 1、本单据一式六联,根据新的编码规则,删除规格型号字段; 2、其他更改字段包括:将批次更改为序列号;将单据编号更改为物料凭证号; 3、收货单位、邮编、联系人、联系电话、单位地址、发运方式、到站、...工作中心放置在表格,如今后需按工序发料,则应将每一项物料与工序及工作中心对应起来;实现前提是系统具备对应关系,如未分配则默认对应第一道工序; 5、如是计划外领料,应经生产计划员、成本会计签字审核才允许领料...,删除原表格的“领料审核人”字段,“领料人”为车间接收人员手工填写; 6、领料单将按生产订单号、库存地点、工作中心分页打印; 10 生产缴库单 ?

    3.1K30

    K3问题总结和解决方法

    所以让客户在系统清除临时文件,运行-录入%temp%-回车删除 2、在K3 10.3版本及以后,K3操作的一些临时文件在Dataflowtemp,此目录在K3 ERP路径下,请找出清除,注意在10.2...,如果是并未实际出库的出库单,则在调整数量处录入正数,如果是并未实际入库的入库单,则在调整数量处录入负数;(2)备份账存数量删除了备份日期内的出库单或入库单,则此时也需要录入调整数量,如果是删除了出库单...解决方法 备份了账存数量,反审核并删除了备份日期内的一张出库单,则备份时的账存数量已经发生改变,此时应在录入盘点数据的界面,通过录入“调整数量”来改变账存数量,调整数量即为出库单上物料的实际出库数量...,提示已发生过业务 解决方法:先确认所有涉及到该物料的单据和期初数据都已删除,然后在仓存管理的即时库存中焦对库存,再进行删除;还是不可以通过禁用该物料重新建立新的物料处理 一一零、问题描述单据自定义需要在源单上增加自定义字段...(采购管理或销售管理)的单据类型里进行新增或删除. 一一八、问题描述收款单的收款类型是否可以自定义 解决方法:在系统设置的基础资料的应收款管理的类型维护里时进行新增或删除.

    5K31

    Old Time Pottery EDI测试流程

    五、OTP 测试平台任务列表支付完成,即可进入如下页面:用户可以在此页面中看到当前需要完成测试的任务列表以及状态信息,也可以下载 OTP 提供的EDI指南。...对于850采购订单以及860订单变更这两种单据而言,其传输方向为OTP发送给S公司。在测试环节针对接收方向的这两种报文,可在网站直接下载测试文件,然后手动导入知行之桥或者知行之云 EDI 系统。...八、测试页面上传文件之后,网站会立即给出测试结果,用户可以在 描述 中看到当前测试单据遇到的错误类型,在 明细 可以将错误定位到测试单据的具体位置,并给出修改要求。...十一、查看单据记录测试单据会被呈现在如下页面,用户可以清晰地看到已经测试过的单据以及各个单据的测试状态。如下图所示:十二、任务列表查看单据测试状态测试完成,将会在测试列表看到所有单据的测试状态。...阅读原文注:文案部分图片及内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

    38010

    k3cloud开发实例

    打开IDE设计器,配置插件; 先找到单据属性窗口,编辑“采购收料单-_Bill”单据属性: 在插件列表界面,点击注册插件: (注意该列表可能已注册有其他插件,这些插件在运行时会动态加载,删除插件可能会导致业务数据错误...该数据是个DynamicObject,包含单据头和单据体数据,其中单据体是集合对象DynamicObjectCollection,并且可以有多个....例如:单据插件根据类型增加分录行。...简单生产领料单保存前,根据当前单据删除的领料单分录获取关联的源单分录,在保存,检测简单领料分录是否仍存在该分录ID上拉的行,然后再判断应该更新简单领料分录还是源单分录,重置该分录行的领料标识。...在分录菜单上增加库存查询(tbQueryInventory)菜单项; a)        运行IDE,选择单据体-菜单集合,新增菜单: b)        保存; 3.

    4.1K12

    ERP系统各部门岗位职责、作业内容及要求

    2)审核采购文员录入系统单据。(采购单) 2、供应部采购文员 1)供应商信息的录入,保证信息的准确和完整性,并及时更新和维护新供应商信息数据。...经销售部门领导审核,及时更新和维护数据。 4)销售预测的录入,注意预测编号的录入,确保销售预测的基本准确性与及时性。 5)审核销售内勤录入系统单据(销售订单、调账用的销售订单、销货单)。...保存,在重新计算单身时。如计算单身时自动带出原工单不需要的原料,要求删除该原料行。 13)当月产成品不能全部入库做倒扣料的工单,不能跨月做倒扣料,而是当月入库多少做多少倒扣料。...经领导审核,及时更新和维护数据。(各使用ERP部门提供完整资料,由经理办审核确认。) 3)各子系统单据性质设置,并保证信息的准确和完整性。经领导审核,及时更新和维护数据。...版权归原作者所有,如有侵权请联系删除。 ---- 免责声明:本文所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容!

    1.2K21

    发版验收测试该注意的事情

    自动生成的单据(销售发票、销售出库单、销售应收单)是否数据字段之间传值正确,是否精度处理正确,是否存在尾差;(业务精度到财务精度) 3)现销订单保存或审核,页面表体行的数据回写是否正确。...2、单据间逆流程 ERP行业中大多数单据审核都能反审,反审数据的关注就是我们测试的一个重点,就现销订单而言,是可以进行反审的,其反审许多操作都进行了撤销,这时候就需要关注数据是否正确回退到审核前的数据...并发测试的重要性 对于事务并发测试,在一些比较关注数据的项目中显的尤为重要,尤其是一些电子商务网站,ERP软件等;大的方面主要包括:同时新增(主要看唯一性验证);对同一数据同时修改保存;对同一数据一方删除...,一方修改;对同一数据两方同时删除;具体举例如下: 1)现销订单中使用某一客户预收款的一个活动序列: 某一操作员A读取客户001的预收款为100元; 另一操作员B读取客户A001的预收款同样为100元;...三、单据的复制功能 ERP的复制往往是对一个单据的复制,单据复制时就应该考虑是否复制了不该复制的数据(如:单据号、单据状态、单据审核信息等),一般主要测试时关注以下两点: 复制字段唯一性检查; 复制带过来数据检查

    86220

    通过一个例子,说明Python的责任链设计模式有什么优缺点

    在Python,这种模式可以通过多种方式实现,通常涉及到一系列对象,每个对象都包含对另一个对象的引用。当一个对象不能处理请求时,它会将请求传递给链的下一个对象,依此类推。...举例说明假设我们有一个审批系统,员工提交报销单据,需要经过多个级别的经理审批。...10000元以上的报销# 创建责任链manager_a = ManagerA(ManagerB())manager_b = ManagerB()supervisor = Supervisor()# 提交报销单据...动态调整链:链的处理者可以动态地添加或删除,增加系统的灵活性。可扩展性:新的请求处理者可以很容易地添加到,而不需要修改现有代码。...请求处理不确定性:如果链的处理者都没有处理请求,可能会导致请求未被处理。过度使用:如果不当使用,责任链模式可能会使系统设计变得复杂。

    12610

    SAP ABAP NAST表的使用解析

    Nast信息状态表 分析:在nast表中有VSTAT(消息处理状态)字段,0代表未处理;1代表处理成功;2代表已不正确的处理;所以我们可以将要打印的记录记录到表nast,用这个字段来代表打印状态,然后去调用...smartform的function,如果返回值不等于,这代表用户打印了但是是不成功的处理,所以将这张单据的nast的vstat设置成2。...“打印删除   l_wa_out_option-tdcovtitle = fp_nast-tdcovtitle....既然我们已经将打印的单据保存到了nast表,那么我们就可以很容易的实现用户需要区分单据是否已打印的需求了。 假设用户通过选择屏幕选择的装运单数据在内表fp_i_output。...通过上述我们实现了记录单据是否打印的目的,但也存在一个问题,因为公司存在多种单据的打印,如果都需要记录打印状态,都使用nast表,那么随着时间的推移nast表记录的数据量将会是非常庞大的。

    36530

    缩短汽车服务行业企业供销链,经销商系统打造企业销售新模式

    通过提升管理水平推动组织快速应对市场变化,成为企业在竞争脱颖而出的关键。经销商渠道管理系统可以让渠道客户享受像C端消费者一样的下单体验。...上级渠道在经销商渠道管理系统销售模块找到销售单据,通过审核就可以从上游渠道的库存中出库。...渠道向企业订货时,通过单据下推或集成方式将数据流向企业供应链系统,企业在供应链系统出库,出库的数据回传到经销商门户的发货记录,渠道客户就可以看到发货情况。...此外,经销商商城平台商品展示价格可为企业为渠道客户设定的折采购价,便于渠道客户快速获取报价。当渠道客户找到心仪的商品即可一键添加到经销商平台购物车,再从购物车下单生成订单。...3、订单跟踪及签收订单提交可进入订单详情查看订单当前的处理进度,经销商系统可自定义运费模板,一键对接第三方物流,出货信息与凭证都可记录在平台上,通过经销商商城平台保存物流单据,既方便物流信息跟踪,渠道用户收货可在经销商平台进行货物确认签收

    1.9K00

    用友开发者中心应用构建实践指引(二):如何实现入职申请单功能?

    此处需要注意的是在实体已经发布我们需要尽可能避免对已发布实体进行删除字段或者取消接口的修改,这种修改易引起后续页面以及流程设计时的报错提示。...在引用已发布实体创建的页面,左侧存在元数据栏,其中包含了实体的所有字段。如在创建页面新增了字段,左侧的元数据栏中会同步增加该字段。...具体规则配置信息如下:其中,在触发设置中选中的单据生效时机代表单据需要在审批流程完成自动触发推单规则。...在转换规则可以对目标字段的数据来源进行设置,在关联选择可以选择常量、公式计算以及简单映射三种类型,其中常量即该字段自动带入设置的固定常量,简单映射则是带入来源单据的某一字段信息,公式计算则是可以通过系统预制公式对来源单据的变量进行公式计算或者获取系统信息...可以看到在 pc 端登记信息表已同步该信息,配置好需要编辑的信息并提交审批单据状态由开立态转变为已审核。

    51130

    接口实现幂等的几种方式

    接口实现幂等的几种方式 幂等性的概念 幂等(Idempotent)是一个数学与计算机学的概念,常见于抽象代数。...删除操作 删除操作也是幂等的,删除一次和删除多次都是把数据删除。 3. 建立唯一索引,防止新增脏数据 当表存在唯一索引,并发时新增重复记录就会报错,那么这时候就查询已存在的记录并返回即可。 4....处理的流程是,在数据提交前要向服务器申请带有有效时间的 Token,然后 Token 放到 Redis或内存,当数据正式提交到后台要校验 Token 并删除 Token。...这样其实是把多线程并发锁的思路引入了多个系统,也就是分布式系统的解决思路。...要注意的是,某个长流程处理过程要求不能并发执行,可以在流程执行之前根据某个标志(用户 ID + 后缀等)获取分布式锁,其他流程执行时获取锁就会失败,也就是同一时间该流程只能有一个能执行成功,执行完成

    33430

    与3PL对接EDI

    ,知行通过调用ERP的API,将3PL回传的数据传入ERP系统,以下是传输单据的详情(传输单据和方式因公司而异): image.png 1....物料主信息 D公司将自己的货物信息,包括物料编码、颜色、尺寸等信息发送至3PL,在之后的业务,双方因为物料信息同步,因此将会极大提升效率。 2....接收回执 3PL在收到D公司的收货通知单单据,在确认收到的货物数量,会回复一张接收回执给到D公司,单据包含物料的实收数量、应收数量以及入库日期,D公司根据此单据可以知道3PL实际收到的货物数量,3PL...发货回执 3PL在发出货,会将货物的发货、包装信息回复D公司,D公司因此可以获取到具体的发货信息。 6. 销售退货单 最终客户如果有退货,D公司将通知3PL,有货会退回。 7....注:文案部分内容来源于网络,版权归原创作者所有,如有侵犯到您的权益,请您联系我们进行删除,给您带来困扰,我们深感抱歉。

    83540

    餐饮供应链系统设计方案

    单据本身,例如不同供应商供应相同物料的价格可能不一样(这样的原因很多,品质、品牌、是否給门店有优惠价格等),在单据,用户选择了供应商A,带出了物料的价格和税率,结果用户突然发现供应商选错了,切换成B,...第二,出错及时的提醒,引导如何可达成正确的结果。...或者在实际场景,总店有仓库可以贮存部分库存,简单地“兼任”配送中心这一环节,成为了品牌整体管理和销售品项的集合体。...“门店—配送中心”和“门店—总店”二者的不同:听起来基本上和第一点的门店——总店模式一样,从单一流程上来看确实是一样的,但是在系统设计上来讲: 第一在职能方面,总店是全局管理+营业+总仓的职能集合体,...长按二维码即刻加入我们,如果你是以上行业公司的IT从业人士加运营小哥微信可入群交流。

    1.8K31

    一个看似纠结的MySQL标签需求的梳理

    我们日常工作总是会有一些看起来繁琐,吃力不讨好的事情,但是这些需求我们不能一概而论,为了落实规范而动用规范的大棒。...2)从库端不光进行数据过滤,还需要进行一些数据的统计分析,进行去重和过滤 3)在经过需求确认,把变更语句按照主键条件发布到线上 ? 对于标签的冲突关系梳理,我提出了改进的思路。...所以我按照单号(order_id,tag_name,tag_id)来进行数据抽取,很快就得到了12个数据子集,我们假设为dataset1-dataset12 然后我们把这些自己的数据写入一个共同的集合dataset...。...而经过初步的统计,这个数据量级确实是很低的,5个重合标签的单据都是个位数,99%以上的单据都是单标签。

    46820

    用友开发者中心应用构建实践指引!

    在实际的应用,可以根据具体需求对字段进行扩展。创建实体,进入页面建模界面,并新增一个引用了创建实体为元数据的单卡页面,同时勾选生成 PC 端与移动端页面。...因此,点击详情页移动端编辑的对应图标进入到页面设计器,选中标题对其图标、样式进行修改,并删除左上角图标的跳转功能。...同时,由于具体的打分以及审批操作均由工作人员完成,因此在面向应聘人员的移动端表单隐藏分数字段并删除部分单据按钮。而 PC 端页面需要禁止工作人员对求职者提交的基础信息进行修改,只允许编辑分数。...使用手机扫描二维码,可以看到如下的预览效果,在移动端填写数据并提交,PC 端同步生成了信息。点击单据进行编辑,可以看到,除了分数选项外,其他选项均无法进行更改。...在完成打分,勾选数据并点击 “提交”,单据转变为审核状态,点击审核可以看到可选如下信息,与自定义动作名称配置的部分一致。点击 “通过” ,可以看到单据状态转变为已审核。

    74900
    领券