Я читал документацию Firebase о правилах безопасности и чтения/записи/проверки. Документация довольно подробная, но я не могу найти никакой информации о влиянии правил безопасности на производительность (запросы, извлечение, запись данных и т. д.).
Например, рассмотрим приведенный ниже пример базы данных:
myapp : {
projects : {
<project_id> : { ... }
}
users : {
<uid> : { role : <admin or pm or other> }
}
}
.. и следующие правила базы данных для чтения:
rules : {
projects : {
$project : {
{
.read: root.child(‘users’).child(auth.uid) && root.child(‘users’).child(auth.uid).child(‘role’).val() == “admin” || root.child(‘users’).child(auth.uid).child(‘role’).val() == “pm”
}
}
}
Когда дело доходит до чтения данных из любого узла $project (например: .child("projects/alpha).once()), какое влияние это правило окажет на производительность по сравнению с тем, если бы НЕ существовало правила чтения? Если я выполняю несколько запросов/ читает одно за другим, будет ли правило оцениваться каждый раз, или Firebase «сохраняет» результат правила где-то, чтобы избежать повторной оценки?