Regras baseadas em consulta com auth.uid não funcionando

Eu tenho a seguinte estrutura:

events
-LEe7X118dkcH2JhJRe
    description: "Testdescr"
    eventTasks
    participants
        0zlwpSlCazNGjOyMi95h8awshrG2
            lastLogin: 1528641494535
            userKey: "0zlwpSlCazNGjOyMi95h8awshrG2"
            username: "User1"
        6LnYKxRu2SWUrxwIzId8dDpOrl02
            lastLogin: 152856590172
            userKey: "6LnYKxRu2SWUrxwIzId8dDpOrl02"
            username: "User2"

Quero consultar todos os eventos aos quais um usuário participa (como um filtro). Meu código Java é:

mDatabaseReference = FirebaseDatabase.getInstance().getReference("event");
mDatabaseReference.orderByChild("participants/"+userId+"/userKey").equalTo(userId).addChildEventListener [...]

Isso funciona como um encanto - eu recebo apenas os eventos corretos.

Agora eu quero criar regras baseadas em consulta no lado do servidor (https://firebase.google.com/docs/database/security/securing-data) Então eu criei uma regra de leitura como:

".read": "query.orderByChild == 'participants/'+auth.uid+'/userKey' && query.equalTo == auth.uid"

Problema: não consigo salvar essa regra. O Firebase me fornece o erro: "Inválido == expressão: operando à direita deve ser um literal de ordenação ou string ao comparar com um ordenamento.". Por que não é possível usar "query.orderByChild" em combinação com auth.uid?

O que estou fazendo errado?

EDITAR: Aqui estão minhas regras completas:

{
  "rules": {         
    ".write": true,
     "event":{
       ".read": "query.orderByChild == 'participants/'+auth.uid+'/userKey' && query.equalTo == auth.uid"      
     }
  }
}

questionAnswers(0)

yourAnswerToTheQuestion