Я пытаюсь получить список объектов на основе request.time . Извлечение одного объекта успешно, в то время как список не выполняется. Можете ли вы сказать мне, как написать , где предложение для веб-SDK-запроса, когда правило безопасности настолько сложно?
Работает
/timer/2339mdynya9Ii358l7DS/smallTimers/15TUTTv6o5dbOZyVEPup
FirebaseError: отсутствуют или недостаточные разрешения. :
/timer/2339mdynya9Ii358l7DS/smallTimers
Рабочий код сборщика (проверено без правил) :
firestore.get(`/timer/2339mdynya9Ii358l7DS/smallTimers/15TUTTv6o5dbOZyVEPup`);
firestore.get(`/timer/2339mdynya9Ii358l7DS/smallTimers`);
Моя структура :
/timer/2339mdynya9Ii358l7DS
{
createdAt: "May 12, 2018 at 5:44:51 PM UTC+2"
}
/timer/2339mdynya9Ii358l7DS/smallTimers/15TUTTv6o5dbOZyVEPup
{
startAfter: 180000
}
Правила моего пожарного магазина :
match /timers/{timerId} {
match /smallTimers/{smallTimerId} {
allow read, list: getTimer(timerId).createdAt.toMillis() + resource.data.startAfter < request.time.toMillis();
}
}
function getTimer(timerId) {
return get(/databases/$(database)/documents/times/$(timerId)).data
}
P.S. Миллисекундное время подбирается и проверяется правильно (выборка одной сущности доказывает это)