Как использовать правила безопасности firestore в поле resource.id? - PullRequest
0 голосов
/ 03 апреля 2019

Правила безопасности Firebase поставляются с объектом ресурса, который задокументирован здесь .Однако использование поля id во время написания правил не работает должным образом.

match /{collectionName}/{document=**} {
            allow read: resource.id == 'SomeDocumentId'
            allow write: if false;
        }

    }

При моделировании с идентификатором документа он отклоняется.

match /{collectionName}/{document=**} {
            allow read: resource.id == null
            allow write: if false;
        }

    }
match /{collectionName}/{document=**} {
            allow read: resource.id != null
            allow write: if false;
        }

    }

Если вы проверите, является ли оно пустым или нет, оба правила всегда запрещают.Поле идентификатора является как нулевым, так и не нулевым при одной и той же настройке.

Я считаю, что при написании моих правил почти год назад я проверил его и работал, но теперь это проблематично.Любая помощь по использованию поля resource.id?

1 Ответ

0 голосов
/ 05 апреля 2019

Проблема была решена самостоятельно.Возможно, возникла временная проблема в конце базы.Теперь, если ресурс доступен, нулевая проверка всегда возвращает false, а не нулевая проверка всегда возвращает true для поля id.Плюс этот также всегда возвращает true, если ресурс доступен

match /{collectionName}/{document} {
        allow read: resource.id == document
        allow write: if false;
    }
}
...