显然,该 id 在脚本实例中是唯一的,但该 id 在用户的所有脚本中是唯一的吗?对于域(对于 Google Apps)?还是它在整个宇宙中都是独一无二的(即谷歌)?
如果数据在应用程序之间共享,id 可以是唯一的参考号吗?
显然,该 id 在脚本实例中是唯一的,但该 id 在用户的所有脚本中是唯一的吗?对于域(对于 Google Apps)?还是它在整个宇宙中都是独一无二的(即谷歌)?
如果数据在应用程序之间共享,id 可以是唯一的参考号吗?
谷歌已经确认它只是该脚本独有的:
ScriptDB ID 对于预定义脚本的存储数据是唯一的。其余的是未定义的行为,依赖它不是很可靠。在非危急情况下是可能的,但我不建议根据
var now = new Date();
var id = UiApp.getActiveApplication().getId();
var user = Session.getActiveUser().getUserLoginId();
Math.random();
要获取 ID,需要将所有内容连接到字符串中,计算字符串摘要并使用 Base64 对结果进行编码。但这个解决方案并不是真正的随机值,最好让 Google 创建一个生成真正唯一 UUID 的函数。
代码是
function getUniqueId() {
var now = new Date();
var id = UiApp.getActiveApplication().getId();
var randStr = '';
for (var i = 0; i < 10; i++) {
randStr += Math.random();
}
var user = Session.getActiveUser().getUserLoginId();
var str = '' + now + id + randStr + user;
var digets = Utilities.computeDigest(Utilities.DigestAlgorithm.SHA_256, str);
var res = Utilities.base64Encode(digets);
res = res.substr(0, res.length - 2);
return res;
}