Google App Script库可以访问ScriptDB吗?

时间:2013-10-14 17:38:19

标签: concurrency google-apps-script shared-libraries

请仔细阅读图片

enter image description here

我的问题:

  1. 我创建了一个可以访问用户Gmail以获取某些数据的库
  2. 我还创建了一个使用库
  3. 的应用程序脚本
  4. app脚本有一个scriptDB
  5. 现在我在两个用户
  6. 之间共享应用脚本
  7. 现在我的问题是,我可以从库中访问两个scriptDB,如果是这样的话?
  8. 库是否可以将scriptDB视为两个不同的数据库。它可以区分两个实例吗?
  9. 将有任何数据混合,例如user1的数据与user2的数据混合。
  10. 当两个用户同时访问库时,它能处理并发吗?
  11. 当图书馆读取用户 Gmail 时,可以将 user1的数据仅显示给用户1 仅将用户2的数据显示给用户2 。< / LI>

    非常感谢任何帮助! !提前致谢。
    更新:基本上是this link中提到的资源范围。

1 个答案:

答案 0 :(得分:4)

您可以将应用程序自己的ScriptDb实例传递给库,并且库可以将数据存储到该应用程序的ScriptDb实例中。

因此,如果您有一个名为“Library”的库,它可以包含以下函数:

function giveMeAnObject(db,item) {
  db.save(item);
  return db.count({});
}

你的应用程序会像这样使用库的功能:

function doStuff(e) {
  Library.giveMeAnObject( ScriptDb.getMyDb(), {'foo' : 'bar'});       
}

应用程序有一个ScriptDb(不适用于该应用程序的每个用户),因此如果该库由两个不同的应用程序(不是同一应用程序的两个不同用户)访问,则数据将最终存储在两个单独的数据库中。但是,如果您只有同一个应用的两个不同用户,他们的数据将混杂在一起。每个应用程序都有自己的ScriptDb,但不是每个用户。