Validação de regras do Firebase e validação de captura falham no aplicativo Android

desenhar

Um usuário que pode fazer login no aplicativoO usuário conectado pode criar clientes que serão armazenados emnode cujo valor será o ID do usuário conectado atual

Valores atuais do banco de dados

{
  "customers" : {
    "UserId1" : {
      "custId1" : {
        "customerCode" : "thk",
        "customerLimit" : "58866",
        "customerName" : "Test New "
      },
      "custId2" : {
        "customerCode" : "thh",
        "customerLimit" : "5698",
        "customerName" : "Yeth"
      }
    },
    "UserId2" : {
      "custId3" : {
        "customerCode" : "thh",
        "customerLimit" : "5886",
        "customerName" : "Test "
      },
      "custId4" : {
        "customerCode" : "tbh",
        "customerLimit" : "58669",
        "customerName" : "New Test"
      }
    }
  }
}

Abaixo está a regra atualmente definida paracustomers mesa emfirebase.

{
  "rules": {
    "customers":{
      ".read": "auth != null", 
      ".write": "auth != null", 
      "$CID":{
            "customerName":{
                ".validate": "newData.isString() && newData.val().length < 100"
            },
            "customerCode":{
                ".validate": "newData.isString() && newData.val().length<4 && !newData.exists()"
            },
            "customerLimit":{}
      }
    }   
  }
}

Mesmo que eu tenha definido que uma regra paracustomerCode ou seja, ele deve ter um valor menor que 4 caracteres, permitindo inserir 5 caracteres. Além disso, como posso adicionar uma validação que valida a exclusividade decustomerCode para cadauserId? a partir de agora tem!newData.exists() mas não está funcionando também.

Alguém poderia me guiar na direção certa?

questionAnswers(1)

yourAnswerToTheQuestion