Разрешение на чтение правила безопасности Firestore, если данные соответствуют условию

Как настроить правило безопасности, при котором пользователь может читать только те данные, которые соответствуют условию. например, у меня есть коллекция пользователей, и некоторые из полей пользователей включены истинно, а для некоторых других - ложно. Я хочу, чтобы пользователь читал только те документы, для которых задано значение true.

Это правило безопасности, которое я применил, но получаю сообщение об ошибке «Отказано в разрешении».

service cloud.firestore {
  match /databases/{database}/documents {


    match /users/{user} {
        allow read: if resource.data.enabled != false;

    }

  }
}

comment
То, что вы делаете, кажется правильным. Запрещено все, кроме чтения данных пользователя, у которого в поле «enabled» установлено значение false.   -  person Thomas    schedule 31.05.2019
comment
@Thomas Я установил для включенного поля значение true, даже во всех документах, но все равно получаю ошибку.   -  person Omeed Totakhel    schedule 31.05.2019
comment
Можете ли вы добавить строку кода, которую вы используете для доступа к коду?   -  person Thomas    schedule 31.05.2019


Ответы (1)


Правила безопасности Firestore не являются фильтрами; ограничения запроса должны соответствовать ограничениям правил, поэтому, например, запрос для этого правила должен быть примерно таким:

db.collection('users').where('enabled', '==', true).get().then(/*callback*/)
person fractalix    schedule 30.05.2019