Как вы интерполируете путь в функциях правил firestore? - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь высушить свои правила, поэтому я пишу такую ​​функцию

function isInCollection(field, collection) {
  return exists(/databases/$(database)/documents/$(collection)/request.resource.data[field])
}

Я пробовал по крайней мере шесть перестановок этого аргумента в exists(), включая использование path() функция для создания пути из строки, и я не могу заставить его правильно разрешить путь.Я подозреваю, что проблема связана с обозначением [] вокруг поля.

1 Ответ

1 голос
/ 13 июня 2019

Это тот же синтаксис, который вы уже используете для интерполяции database и collection. Используйте $(), чтобы содержать выражение, которое вы хотите добавить к пути.

exists(/databases/$(database)/documents/$(collection)/$(request.resource.data[field]))
...