Firestore lee las reglas con autocondición

Actualmente estoy tratando de construir una pequeña aplicación en Firebase como una evaluación de la misma. Parece interesante y súper productivo, pero tengo un problema con las reglas de la tienda de incendios.

Tengo una colección (juegos) con objetos que se ven así:

{
    "name":String,
    "description":String,
    "owners": 
    {
        "uid": String
        "uid2": String
    }
}

Y reglas establecidas así:

service cloud.firestore {
    match /databases/{database}/documents {
        match /games {
            match /{game} {
                allow write: if request.auth != null && request.resource.data.owners[request.auth.uid] == 'ADMIN';
                allow update: if request.auth != null && resource.data.owners[request.auth.uid] == 'ADMIN';
                allow read: if request.auth != null && resource.data.owners[request.auth.uid] == 'ADMIN';
            }
        }
    }
}

Mientras escribe, la actualización funciona bien. Solo lectura funciona para documentos individuales. Cuando intento leer una colección, obtengo un error de acceso como si el usuario no tuviera derecho a ella. La parte que hace que no funcione es

resource.data.owners[request.auth.uid] == 'ADMIN'.

Agregar unwhere("owners."+auth.uid,"==", 'ADMIN') a la consulta de colección tampoco ayuda.

¿Qué estoy haciendo mal aquí? ¿Existe un enfoque sugerido en Firebase Firestore para un escenario similar?

EDITAR: intenté agregar reglas 'get' y 'list' como esta:

allow list: if request.auth != null;

allow get: if request.auth != null && resource.data.owners[request.auth.uid] == 'ADMIN';

No funcionó como se esperaba. Esperaba que me permitiera enumerar documentos conwhere pero si hay un documento que no pudeget Esperaba obtener "Permisos faltantes o insuficientes". Lo que pude hacer fue enumerar TODOS los documentos pero no leer algunos directamente (get la regla funciona cuando se trata de recuperar un solo documento pero no cuando se listan de una colección).

EDIT 2: Parece que, según @MikeMcDonald, mi expectativa era correcta, pero actualmente está fallada. Esperando la solución.

EDITAR 3: ahora funciona bien con las reglas para obtener y establecer la lista de esta manera:

allow get, list: if request.auth != null && resource.data.owners[request.auth.uid] == 'ADMIN';

Respuestas a la pregunta(1)

Su respuesta a la pregunta