Firebase Security Rule с атрибутом в базе данных - PullRequest
0 голосов
/ 07 января 2020

Мне нужны правила безопасности для моего firebase-приложения. Мои данные выглядят так:

{
     owner = "djskjfskdjf",
     data = "some data"
}

Путь к коллекции равен /Data/ Я хочу, чтобы пользователи, прошедшие проверку подлинности, могли читать и создавать документы в этой коллекции. Чтобы редактировать или удалять документы, я хочу, чтобы uid в владельце поля был таким же, как и request.auth.id.

Согласно документации Firebase это должно работать:

service cloud.firestore {
    match /databases/{database}/documents {
        match /Data/{document=**} {
            allow read, create: if request.auth.uid != null;
            allow delete, write: if request.auth.uid == request.resource.data.owner;
        }
    }
}

Но при попытке обновить поле в симуляции выдает ошибку: Error: simulator.rules line [5], column [51]. Property resource is undefined on object.

Надеюсь, вы поможете мне с этой проблемой.

1 Ответ

1 голос
/ 08 января 2020

Если ваш запрос не отправляет все обязательные поля, которые вы проверяете в правилах, то request.resource.data.owner не будет работать (например, если вы просто отправляете данные, но не являетесь владельцем запроса).

Вы должны использовать стиль ниже, чтобы соответствовать существующему объекту в базе данных. Не имеет значения, если в запросе пропущена информация о владельце. allow delete: if resource.data.owner == request.auth.uid;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...