Regras e estrutura do banco de dados do Firestore para compartilhar documentos entre usuários

Estou tentando criar um aplicativo que permita aos usuários colaborar em listas. Todo usuário precisa ser convidado para poder trabalhar na lista.

Estruturei meus dados assim (vagamente com base emesta postagem no blog) Além disso, essa estrutura pode ser alterada, se necessário.

list
  list_1:
    users:
      owner:
        [email protected]: true
      shared:
        [email protected]: true
        [email protected]: true
    id
    name
    items:
      item_1:
        id:
        name:
      ...

O que estou tentando alcançar: todos devem ser capazes de criar listas. O criador então se torna o proprietário da lista criada. Somente o proprietário e os usuários no documento "compartilhado" devem poder ler e gravar nesta lista.

Eu acho que as configurações de permissão devem ser algo como isto. Mas isso não está funcionando:

service cloud.firestore {
  match /databases/{database}/documents {
    match /lists/{listId}/{anything=**} {
        allow read, write: if !exists(resource.data.users.owner) ||
                               resource.data.users.owner == request.auth.token.email ||
                           ,    request.auth.token.email in resource.data.users.shared
    }
  }
}

questionAnswers(1)

yourAnswerToTheQuestion