Swift Firebase usando un índice no especificado

Entonces, tengo una aplicación de chat y mis datos están estructurados así

chats : {
    chat12345 : {
        members : {
            user123 : true,
            user456 : true,
        }
    }
}

users : {
    user123 : {
        chats : {
            chat12345 : true
        }
    }
}

Entonces, cuando quiero obtener una lista de los chats del usuario, simplemente uso:

let ref = dbref.child("users").child("user123").child("chats")
ref.observe(.childAdded, with: { (snapshot) -> Void in

    let chatRef = dbref.child("chats").child(snapshot.key)

        chatRef.observeSingleEvent(of: .value, with: { (chatSnapshot) in

            //I now have the chat object

        })
})

Como puede ver arriba, puedo consultar cada ID de chat para obtener el objeto de chat de Firebase con éxito.

Pero también necesito observar cambios en los chats de los que soy miembro, por ejemplo, si el título del chat, la imagen u otras propiedades cambian.

Entonces cuando intento lo siguiente:

let queryRef = chatRef.queryOrdered(byChild: "members/user123").queryEqual(toValue: true)

queryRef.observe(.childChanged, with: { (snapshot) -> Void in

})

Esto técnicamente funciona, pero la consola genera lo siguiente:

Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding ".indexOn": "members/user123" at /chats to your security rules for better performance.

¿Cómo modifico las reglas de seguridad o mi consulta para observar los cambios en los chats de los que soy miembro?

Aquí están mis reglas de seguridad en este momento:

"chats": {

    ".read": "auth != null",
    ".write": "auth != null",

    "$chatId" : {
        "members": {
          ".indexOn": ".value"
        }
    }

 },