Отметка времени пожара и правила безопасности на основе запроса. - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь получить список объектов на основе 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. Миллисекундное время подбирается и проверяется правильно (выборка одной сущности доказывает это)

...