Я обнаружил, что использование вызова get () в функции вне правила сопоставления не работает, тогда как помещение его в правило сопоставления работает:
service cloud.firestore {
// If I put this here, it does not work.
function isAdmin() {
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.permissions.hasAny(['admin']);
}
match /myrecord/{property} {
// If I put the isAdmin() here it works.
function isAdmin2() {
return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.permissions.hasAny(['admin']);
}
allow write: if isAdmin();
}
}
Я бы предпочел, чтобы эта функция была на «глобальном» уровне, где я могу получить к ней доступ из всех правил матча. Можно ли это сделать?