2013-09-18 3 views
4

Итак, у меня есть это приложение, где анонимным пользователям разрешено писать, но не читать определенный путь. Они размещают данные на модерируемой доске сообщений.Как разрешить пользователям писать новый контент, но не обновлять/удалять существующий контент

Но с моими текущими правилами безопасности они также могут перезаписывать существующие данные. Как я могу запретить обновления и разрешать только новые сообщения.

Мои текущие правила безопасности:

{ 
    "rules": { 
    ".read": "auth != null", 
    ".write": "auth != null", 
    "inbox" : { 
    ".write": true, 
    }, 
    "moderated" : { 
     ".read": true, 
    }, 
    } 
} 

ответ

4

Используйте data.exists(), чтобы определить, является ли объект, они пытаются писать уже существует:

{ 
    "rules": { 
    ".read": "auth != null", 
    ".write": "auth != null", 
    "inbox" : { 
     "$post" : { 
      ".write": "!data.exists()", 
     } 
    }, 
    "moderated" : { 
     ".read": true, 
    }, 
    } 
} 
+0

Thanx за ответ, вы где близко .. Так что я просто отредактируйте свой ответ с правильным. Это будет работать только в том случае, если почтовый ящик был пуст, так как «данные» со значением «входящие». Поэтому мне пришлось добавить уровень «$ post»: и проверить там, чтобы получить то, что я хотел. – barsju

+0

Не каскад правил Firebase? Я не думаю, что это действительно сработало, так как самый верхний '' .read '' - это все, что вступит в силу. –

Смежные вопросы