显然,id在脚本实例中是唯一的,但是在用户的所有脚本中id是唯一的吗?域名(适用于Google Apps)?或者它在整个宇宙中是独一无二的(即Google)?
如果数据是跨应用程序共享的,那么id可以是唯一的参考号吗?
答案 0 :(得分:3)
Google已经确认它只对该脚本有用:
答案 1 :(得分:2)
ScriptDB ID对于预定义脚本的存储数据是唯一的。其余的是未定义的行为,依赖它并不是非常可靠。在非危急情况下是可能的,但我不建议,根据
生成唯一IDvar 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;
}
答案 2 :(得分:2)
**根据OP的回答/兆字节评论进行编辑**
看起来您只能依赖当前ScriptDb数据库中唯一的ID。存储数据库对象时,documentation表示为其分配了“不透明,不可变的字符串值”,并且它是"unique identifier"。
这是一个很好的问题,关于该ID在域中是唯一的,还是在所有中都是唯一的(编辑 - 似乎我们不能依赖于任何一种情况)。