Попытка привести правила безопасности Firestore и синхронизировать запросы для HashMap. - PullRequest
0 голосов
/ 03 марта 2019

Мне нужна помощь в создании некоторых правил безопасности Firestore для работы с запросами в моем коде.Поэтому я попытался использовать HashMap, как показано ниже, «sharedWith» - это поле хеш-карты в моем документе:

...
  sharedWith
        abc@gmail.com : true
        zzz@gmail.com : true     
...

Мое правило безопасности, которое я попытался настроить, как показано ниже:

allow read: if isSignedIn() && resource.data.sharedWith[request.auth.token.email]=="true"

Что яЯ ожидаю, что произойдет, когда пользователь 'zzz' вошел в систему, этот пользователь должен иметь возможность прочитать этот документ (созданный другим пользователем)

Мой запрос выглядит следующим образом:

db.collection("Sites")
        .whereEqualTo("sharedWith."+"zzz.@gmail.com",true)
        .get()
        .addOnSuccessListener { result -> ...

Где я иду не так, пожалуйста?

Ошибка, которую я получаю, выглядит следующим образом:

Прослушивание запросов (Сайты, где sharedWith. zzz@gmail .com == истинный порядок имя ) не удалось: Статус {код = PERMISSION_DENIED, описание = Отсутствует или недостаточно разрешений., причина = ноль}

...