如何通过 Google 应用程序脚本将一位拥有多个孩子的父母发送到 firebase?

2024-03-06

我有 G-AppScript 代码,应该将项目批次作为父“文章代码”的子项,如下图所示:

谷歌表格数据表:

目标结果

我尝试写下面的链接:

G-AppS脚本

function writeDataToFirebase() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var data = sheet.getDataRange().getValues();
  var dataToImport = {};
  for(var i = 1; i < data.length; i++) {

var ItemCode = data[i][0];
var Batch = data[i][3];

dataToImport[ ItemCode ]  = {
  ItemDesc:data[i][1],
  VenCode:data[i][8],
  VenName:data[i][9],
}

for(var i = 1; i < data.length; i++) {
  var Batch = data[i][3];
  dataToImport[ Batch ] = {
    barcode:data[i][2],
    ExpDate:data[i][4],
    ComPrice:data[i][5],
    TaxVal:data[i][6],
    PubPrice:data[i][7]
   }
  }
 }
 var firebaseUrl = "https://example.firebaseio.com/";
 var base = FirebaseApp.getDatabaseByUrl(firebaseUrl);
 base.setData("itemsInventory", dataToImport);
}

但我没有将批次作为项目代码“父级”的子级

这就是我得到的结果。


如果您希望批次成为商品编号的子批次,则需要嵌套循环,迭代每个父批次的批次,并将它们推入内部循环内的批次数组中。然后将批处理数组作为键值对插入到dataToImport[ ItemCode]- 这适用于外循环内的每个商品编号。

下面是实现此功能的代码片段:

function writeDataToFirebase() {
  var ss = SpreadsheetApp.openById("XXX");
  var sheet = ss.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var dataToImport = {};
  var allBatches ={}; 
  for(var i = 1; i < data.length; i++) {
    allBatches =[]; 
    var ItemCode = data[i][0];    
    for(var j = i; j < data.length; j++) {    
      var Batch = data[j][3];
      if(data[j][0]==ItemCode)
      {  
        allBatches[Batch] = {
        barcode:data[j][2],
        ExpDate:data[j][4],
        ComPrice:data[j][5],
        TaxVal:data[j][6],
        PubPrice:data[j][7]
        }
      }
     else
      {
       break;
      }   
     }
    if(ItemCode != data[i-1][0])
     {
       dataToImport[ ItemCode ]  = { 
        ItemDesc:data[i][1],
        VenCode:data[i][8],
        VenName:data[i][9],
        Batch:allBatches
       }
     }
  }

  var base = FirebaseApp.getDatabaseByUrl("XXX")
  base.setData("", dataToImport);  
}

以及结果的截图:

请注意字典中括号之间的参数allBatches[Batch] and dataToImport[ItemCode]必须是数字(不带字母)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 Google 应用程序脚本将一位拥有多个孩子的父母发送到 firebase? 的相关文章

  • 有没有办法将 Google 文档分割成多个 PDF?

    我想在 Google Scripts VBA 代码中复制我为 Word 文档编写的代码 基本上 它通过搜索我插入文档中的标签 将文档 切片 为多个 PDF 文件 目的是允许合唱团使用 forScore 管理乐谱的应用程序 在切片点插入先前注
  • 移动设备:缺少操作

    我正在尝试执行该操作的 POST 但是 当我发出请求时 我收到代码 400 表示操作值丢失 my code function mobileAPIPOST var response UrlFetchApp fetch https www go
  • 新的 FUITableViewDataSource - 如何使用?雨燕3

    刚刚更新到较新的 FirebaseUI Pod 有些事情发生了变化 但其中最大的变化之一是 FUI 表视图的工作方式 我让它在旧版本上运行良好 但在下面遇到了困难 并且缺乏文档 示例 self dataSource FUITableView
  • 测量填写部分的时间 - 谷歌表单

    我正在尝试使用谷歌表单进行研究调查问卷 对于某些部分 我想自动测量用户填写所需的时间 谷歌表单中没有这样的选项 我尝试复制表单源 并用 javascript 填充时间 但它不起作用 跨源问题 未能成功托管复制的表单 如何做到 我如何衡量回答
  • React Uncaught TypeError:this.state.messages.map 不是一个函数

    我正在开发一个 React 应用程序 并且遇到了此映射函数的问题 render const messages this state messages map message gt return li message text li retu
  • QUnit 删除依赖项上的方法会破坏针对该依赖项的测试

    在 Google Apps 脚本中 我正在对我正在开发的应用程序进行单元测试 使用 QUnit https github com simula innovation qunit tree gas gas 使用测试驱动开发 正在测试的代码 我
  • 选择列的最后一个值

    我有一个电子表格 G 列中有一些值 有些单元格之间是空的 我需要将该列中的最后一个值获取到另一个单元格中 就像是 LAST G2 G9999 除了那个LAST不是一个函数 类似的答案卡里加里的回答 https stackoverflow c
  • 如何在公式中的 & 之间添加换行符以生成 QR URL

    我正在谷歌表格中创建一个电子表格 用于跟踪财产房间的库存 我使用二维码作为标签 将其放置在房产上 并将与该特定房产的相关信息相关联 我正在使用以下代码 image https chart googleapis com chart chs 2
  • RecyclerView 来自 Firebase 的部分和数据

    您好 我正在开发一个应用程序 在其中我必须使用 Firebase 填充数据回收器视图 准备就绪 现在我想做的是用 data firebase 填写一个 recyclerview 但有一些部分将成为托管 data firebase 的父级 我
  • 用户 displayName 在电子邮件注册方法的 .onCreate 触发器中未定义

    我尝试实施 onCreatefirebase 云函数就像 Firebase 云函数 codeLab 中一样 https codelabs developers google com codelabs firebase cloud funct
  • 如何以降序而不是升序使用 orderByKey() #Askfirebase

    嗨 David 和 Firebase 团队 我试图通过最近的 侦察 来订购 FragmentStatePagerAdapter 中的选项卡 将项目插入 FragmentStatePagerAdapter 并使其正确刷新似乎真的很难 因此 如
  • 根据条件格式化货币

    Google Apps 脚本新手 但有一些 VBA 编码经验 我希望能够根据不同的单元格输入决定单元格的数字格式 eg Col A 客户名称 验证范围 B 栏 货币类型 英镑 美元 欧元 经过验证的列表 Col C 费用 100 用户免费类
  • 使用 Gmail Apps 脚本以 HTML 和普通格式发送电子邮件

    我正在使用 Google Apps 脚本为 Gmail 编写一个自动回复机器人 http script google com http script google com 每次我使用GmailThread s Reply https dev
  • 复制带有内嵌图像的表格

    我正在尝试将 GDoc 的内容复制到另一个 GDoc 中 这对于所有不同的元素类型都非常有效 包括一个表 枚举DocumentApp ElementType TABLE 但是 如果表包含内联图像 EnumDocumentApp Elemen
  • Firebase 数据库 onWrite 的 Cloud Functions 触发两次

    您好 我正在开发一个通知系统 但我在删除已处理的通知数据时遇到问题 这onWrite事件侦听器被触发两次 从而产生两个通知 您能帮我找到解决方法 以便 onWrite 事件侦听器不应该被触发两次吗 删除已处理的数据很重要 exports s
  • Clasp 无法创建新的 Apps 脚本

    我用这个终端命令克隆了一个应用程序脚本 clasp clone
  • Google App脚本:无法保留前导零,因为它被自动删除

    我是谷歌脚本的新手 我有一个像下面这样的场景 我有 Sheet1 其中包含 A 列和 B 列 通常我尝试将十进制值存储到其中 我的意思是A列中的整数部分和B列中的小数部分 例如 场景一 如果值为 23 75 则 Column A 应为 23
  • Google Apps 脚本中的范围要求过高

    Here s 自定义 Google 表格 https docs google com spreadsheets d 1qwOzxP qHWRhI2HZmGdlgKLlXCYIQz4XO2tq1EY 8NE edit gid 0与脚本代码 v
  • 如何知道哪个用户正在尝试登录?

    用户是使用电子邮件和密码创建的 这就是我进行注册的方式 mSignup setOnClickListener new View OnClickListener Override public void onClick View v mEma
  • 如何设置多个过滤器?

    我有一个关于将过滤器应用于多个值以使用 Google 脚本隐藏它们的问题 我有一个具有多种状态的项目跟踪器 例如 达到目标 已完成 已取消 已延迟 等 我想编写一个脚本来设置 状态 列的筛选器值 以便标记为 已完成 或 的行 已取消 被隐藏

随机推荐