2016-05-29 2 views
1

Я пытаюсь защитить свои файлы хранилища Firebase на основе времени доступа, скажем, только разрешить чтение файлов до определенного времени после их загрузки.Правила безопасности хранилища Firebase: параметр duration.value

Это конкретное время хранится в поле «expiration» пользовательского свойства в метаданных файла, когда оно загружается пользователем.

Моя проблема заключается в том, что я пытаюсь использовать это значение в качестве параметра в функцию duration.value(int magnitude, string units) следующим образом:

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

Но функция «длительности» кажется только принимать постоянные значения в параметр величины и а не динамические значения.

Любой, кто пробовал это тоже?

Благодаря

ответ

2

Хороший вопрос, жаль у вас возникли проблемы :(

Да, эти функции делают принимать динамические значения - здесь речь идет о том, что тип является неправильным, и, следовательно, функция терпит неудачу .

Все пользовательские метаданные (как «истечение» есть), возвращаются в виде строки, в то время как duration.value() принимает int и string, как вы правильно отметили.

простой (хотя пока еще не имеющие документов) способ сделать это, чтобы привести значение string к int, используя int() метод:

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

После изучения глубоко я думал, что это может быть из-за неправильный тип, но я Жду» Знаю, что можно делать отливки. Ницца! – MrBrightside

+1

Да, это все проблемы с документами (я работаю над их обновлением) –

Смежные вопросы