Baza ogniowa usuwa dziecko z regułą bezpieczeństwa! Data.exists przy zapisie

Mam regułę bezpieczeństwa do dodawania nowych danych

 "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'",
       }
      }
      }

Służy do zapobiegania duplikatom lub nadpisywaniu węzła potomnego za pomocą!data.exists() reguła.

Problem polega na tym, że nie pozwoli mi usunąć dziecka za pomocą tej reguły, ponieważ istnieją dane. Aby obejść to, dodałemroot.child('MODES/delete').val() dane, które pozwolą mi je usunąć, jeśli ustawię je na „tak”.

Jak mogę to mieć, więc nie muszę tego robić? Więc nie mogę mieć duplikatów, ale mogę także usunąć dziecko, jeśli chcę?

questionAnswers(1)

yourAnswerToTheQuestion