Acho difícil mapear seu código para a API do Firebase. Mas o que você está descrevendo parece possível usando transações ou atualizações em vários locais .
Cobri esses tipos de atualizações em profundidade no passado em:Como gravar dados desnormalizados no Firebase