Firebase 存储安全规则:duration.value 参数
Firebase Storage security rules: duration.value parameter
我正在尝试根据时间访问来保护我的 Firebase 存储文件,假设只允许在文件上传后的特定时间读取文件。
当用户上传时,这个具体时间存储在文件元数据的自定义 属性 'expiration' 字段中。
我的问题是我试图将此值用作 duration.value(int magnitude, string units)
函数的参数,如下所示:
request.time < resource.timeCreated + duration.value(resource.metadata.expiration, "m");
但是 'duration' 函数似乎只接受常量值而不是动态值。
有人也试过这个吗?
谢谢
问得好,很抱歉给您带来麻烦:(
是的,这些函数确实采用动态值——这里的问题是类型错误,因此函数失败。
所有自定义元数据(如 "expiration" 是)作为字符串返回,而 duration.value()
接受 int
和 string
,正如您正确指出的那样.
执行此操作的简单(尽管尚未记录)方法是使用 int()
方法将 string
值转换为 int
:
request.time < resource.timeCreated + duration.value(int(resource.metadata.expiration), "m");
我正在尝试根据时间访问来保护我的 Firebase 存储文件,假设只允许在文件上传后的特定时间读取文件。
当用户上传时,这个具体时间存储在文件元数据的自定义 属性 'expiration' 字段中。
我的问题是我试图将此值用作 duration.value(int magnitude, string units)
函数的参数,如下所示:
request.time < resource.timeCreated + duration.value(resource.metadata.expiration, "m");
但是 'duration' 函数似乎只接受常量值而不是动态值。
有人也试过这个吗?
谢谢
问得好,很抱歉给您带来麻烦:(
是的,这些函数确实采用动态值——这里的问题是类型错误,因此函数失败。
所有自定义元数据(如 "expiration" 是)作为字符串返回,而 duration.value()
接受 int
和 string
,正如您正确指出的那样.
执行此操作的简单(尽管尚未记录)方法是使用 int()
方法将 string
值转换为 int
:
request.time < resource.timeCreated + duration.value(int(resource.metadata.expiration), "m");