Google apps script 从库中调用脚本时调用函数

Google apps script 从库中调用脚本时调用函数,google-apps-script,Google Apps Script,我已经创建了一个谷歌电子表格,其中包含可供多人使用的自定义菜单选项。我将代码放在一个单独的库中的菜单选项后面,该库作为资源被工作表中的脚本使用。工作表中的脚本本质上是哑的,通过回调库来处理所有逻辑。这样做是为了将代码维护在一个中心位置 现在,我的问题是库需要一种方法来存储某些特定于工作表的数据,这些数据不应该在工作表的任何两个实例之间共享 一些我已经尝试过或正在考虑尝试的事情: 在工作表中的脚本中创建getter/setter函数,并尝试从库中调用这些函数。但是,调用脚本中的函数似乎对库代码不可

我已经创建了一个谷歌电子表格,其中包含可供多人使用的自定义菜单选项。我将代码放在一个单独的库中的菜单选项后面,该库作为资源被工作表中的脚本使用。工作表中的脚本本质上是哑的,通过回调库来处理所有逻辑。这样做是为了将代码维护在一个中心位置

现在,我的问题是库需要一种方法来存储某些特定于工作表的数据,这些数据不应该在工作表的任何两个实例之间共享

一些我已经尝试过或正在考虑尝试的事情:

  • 在工作表中的脚本中创建getter/setter函数,并尝试从库中调用这些函数。但是,调用脚本中的函数似乎对库代码不可见

  • 库中的Globals——我对使用它很谨慎,因为我怀疑Globals将保存在库的上下文中,因此会导致各种并发问题

  • 用户属性-如果同一用户打开了同一工具的两个副本,该怎么办?同名的用户属性会发生冲突吗


  • 如有任何想法/建议,将不胜感激。谢谢

    将其存储在库的scripdDb上(或者,如果希望将数据库存储在每个伪脚本上,则将其以参数形式传递给库)。
    数据库对象的两个属性是用户电子邮件和电子表格id。

    将其存储在库的ScripDb上(或者,如果希望将数据库存储在每个虚拟脚本上,则将其以参数形式传递给库)。
    db对象的两个属性是用户电子邮件和电子表格id。

    我喜欢将ScriptDB实例传递回库的想法。但有两个后续问题:1。如何在后续运行库函数时从伪脚本中获取ScriptDB实例?或者我必须在每个占位符函数回调上从伪脚本传递ScriptDB实例吗?2.在ScriptDB中存储不也需要某种清除/归档逻辑吗?我相信我能想出一些办法,但如果我能帮忙的话,我宁愿避免复杂性。1:是的,你每次都需要通过。2.是的,您需要清除它,以避免数据库大小限制,这些限制因帐户类型(gmail、gapps free或biz)而异。我喜欢将ScriptDB实例传递回库的想法。但有两个后续问题:1。如何在后续运行库函数时从伪脚本中获取ScriptDB实例?或者我必须在每个占位符函数回调上从伪脚本传递ScriptDB实例吗?2.在ScriptDB中存储不也需要某种清除/归档逻辑吗?我相信我能想出一些办法,但如果我能帮忙的话,我宁愿避免复杂性。1:是的,你每次都需要通过。2.是的,您需要清除它,以避免数据库大小限制因帐户类型(gmail、gapps free或biz)而异