Как создать строку с переменной, аналогичной тому, что шаблонные литералы делают в JS ES6? - PullRequest
0 голосов
/ 03 мая 2019

В следующем коде я хочу разрешить чтение для пути, если документ существует в другом пути.

function isRemoteDocExist(path) {
  return exists(/databases/$(database)/documents/$(path));
}

match /some/path/{id} {
  allow read: if isRemoteDocExist(`other/path/$(id)`); // <-- How do I do this?
}

1 Ответ

1 голос
/ 03 мая 2019

Нет синтаксиса для этого с правилами безопасности Firebase.Синтаксис правил может выглядеть как JavaScript, но это определенно не так.

Единственный способ составлять строки с правилами безопасности - это операции, предоставляемые объектами типа String .И это в значительной степени просто оператор конкатенации +.Не существует шаблона строки, подобного ES6.

Более того, похоже, что вы пытаетесь смешать тип Path с типом String для создания нового Path.У вас могут быть проблемы с тем, как вы это делаете сейчас.Если вы хотите построить Path программным способом, сначала вы должны составить строку, а затем преобразовать ее в путь, используя функцию path(), как описано в связанной документации для Path .

...