Firebase存储安全规则:duration.value参数

时间:2016-05-29 12:10:30

标签: firebase metadata firebase-security firebase-storage

我正在尝试根据时间访问来保护我的Firebase存储文件,假设只允许在上传文件后将其读取到特定时间。

当用户上传时,此特定时间存储在文件元数据中的自定义属性“过期”字段中。

我的问题是我正在尝试将此值用作duration.value(int magnitude, string units)函数的参数,如下所示:

request.time < resource.timeCreated + duration.value(resource.metadata.expiration, "m");

但是'持续时间'功能似乎只接受幅度参数中的常量值而不是动态值。

那里有人试过这个吗?

由于

1 个答案:

答案 0 :(得分:2)

好问题,抱歉你遇到麻烦:(

是的,这些函数确实采用动态值 - 这里的问题是类型错误,因此函数失败。

所有自定义元数据(作为“过期”)都以字符串形式返回,而duration.value()需要intstring,正如您正确指出的那样。

这样做的简单方法(尽管尚未记录)是使用string方法将int值转换为int()

request.time < resource.timeCreated + duration.value(int(resource.metadata.expiration), "m");