Minha Regra do Firebase Não Funciona (Falta de Permissão, Erro 403)

Bom dia.
As regras e o código, em Java, a seguir, não funcionam. Só funciona quando insiro o código para todos os “Path” antes do “match” para um arquivo em específico.
As 2 primeiras linhas, do código em Java, é para mostrar que o usuário está autenticado.

Regras para o Storage do Firebase:

    rules_version = '2';
    service firebase.storage {
      match /b/{bucket}/o {
        // match /{allPaths=**} {
        //     allow read, write, delete, update: if request.auth.token.email == 'leandrocgms2015@gmail.com';
        //     //allow read, write: if request.auth != null;
        // }
        match /Users/{uid}/images/profile/profile.png {
        	allow read, write, update: if (request.auth.uid == uid && resource.size <= 5*1024*1024) || request.auth.token.email == 'leandrocgms2015@gmail.com';
          allow delete: if request.auth.uid == uid || request.auth.token.email == 'leandrocgms2015@gmail.com';
        }
      }
    }

Código Java:

    Log.e("url", "Users/"+FirebaseAuth.getInstance().getUid()+"/images/profile/profile.png");
    Log.e("User", FirebaseAuth.getInstance().getUid());
    StorageReference profile = storageRef.child("Users/"+FirebaseAuth.getInstance().getUid()+"/images/profile/profile.png");
    Bitmap bitmap = ((BitmapDrawable) CadastrarActivity.imgUser.getDrawable()).getBitmap();
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
    //String extension = bitmap.get
    byte[] data = baos.toByteArray();
    UploadTask uploadTask = profile.putBytes(data);
    uploadTask.addOnFailureListener(new OnFailureListener() {...