Firebase excluir filho com regra de segurança! Data.exists on write

Eu tenho uma regra de segurança para adicionar novos dados

 "CATEGORIES": {
      "$CATEGORIES": {
      ".write":   "root.child('USERS/' + auth.uid + '/type').val() == 'admin' && !data.exists() || root.child('USERS/' + auth.uid + '/type').val() == 'admin' && root.child('MODES/delete').val() == 'yes'",
       "$DATA": {
         ".write":   "root.child('USERS/' + auth.uid + '/type').val() == 'admin'",
       }
      }
      }

É usado para impedir duplicatas ou substituição do nó filho com o!data.exists() regra.

O problema é que ele não me permite excluir o filho dessa regra porque existem dados. Para contornar isso, adicionei oroot.child('MODES/delete').val() dados para que eu possa excluí-lo se eu configurá-lo como 'yes'.

Como posso tê-lo para que não precise fazer esse trabalho? Para que eu não tenha duplicatas, mas também possa excluir o filho, se eu quiser?

questionAnswers(1)

yourAnswerToTheQuestion