Правила безопасности Cloud Firestore: как проверить, существует ли свойство?

Мне нужно проверить, существует ли свойство в документе в магазине. allow update, delete: if resource.data.uid; в приведенном выше коде у меня есть ошибка «Свойство uid не определено для объекта», так как я могу проверить, есть ли uid в данных?

Непонятно, что вы здесь спрашиваете. Я предлагаю более подробно объяснить, что вы пытаетесь выполнить, в том числе показать запрос, который вы пытаетесь защитить, содержимое базы данных в этом месте и более подробную информацию о правилах, которые вы пытаетесь написать (не только одна строка, которая у вас есть сейчас).

Doug Stevenson 26.06.2019 20:23

мне нужно разрешить удаление, обновление, если у целевого документа нет свойства uid (например, в javascript будет просто if (resource.data.uid) { // if true} else { //if false }, но здесь в правилах firebase возникает ошибка, когда документ не имеет uid вместо получения false

A. Melnyk 26.06.2019 20:28
Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
4
2
1 695
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Чтобы проверить, содержит ли документ определенное поле, я использую in:

allow update, delete: if 'uid' in resource.data;

только одно исправление: нужно использовать resource.data.keys()

A. Melnyk 27.06.2019 09:12

@A.Melnyk согласно документам firebase.google.com/docs/reference/rules/rules.Карта оператор in работает как с картами, так и со списками. Поэтому вызов keys() не требуется

Dwagh 02.09.2020 10:52

есть ли способ опровергнуть это утверждение. Я хочу проверить, существует ли свойство НЕ

Leonardo Rick 21.10.2020 16:18

Да, !'uid' in resource.data должен работать для операций записи и получения. Если у вас возникли проблемы с тем, чтобы заставить его работать с вашим вариантом использования, откройте новый вопрос с минимальным кодом + правилами + данными, с которыми любой из нас может воспроизвести проблему.

Frank van Puffelen 21.10.2020 16:23

Другие вопросы по теме