1

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

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

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

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

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

有没有人也试过这个?

谢谢

4

1 回答 1

2

好问题,对不起,你遇到了麻烦:(

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

正如您正确指出的那样,所有自定义元数据(如“过期”)都作为字符串返回,同时duration.value()采用 anint和 a 。string

执行此操作的简单(尽管尚未记录)方法是使用以下方法将string值转换为 an :intint()

request.time < resource.timeCreated + duration.value(int(resource.metadata.expiration), "m");
于 2016-05-31T17:41:34.900 回答