Vorrei fare una chat usando Firebase. Devo visualizzare per ciascun utente l'elenco del gruppo a cui appartengono e anche per ogni gruppo tutti i membri.Come memorizzare utenti e gruppi per una chat usando Firebase
A causa di come è progettato Firebase e per avere prestazioni accettabili, penso di creare un elenco di tutti i gruppi contenenti l'elenco di membri e, per ciascun utente, una voce con tutto il gruppo a cui appartengono.
La mia prima domanda è: è l'approccio giusto?
In tal caso, la seconda domanda è: come aggiungere o rimuovere un utente in modo atomico, ovvero assicurarsi che l'utente sia aggiunto al gruppo e che il gruppo sia aggiunto all'utente o non aggiunto (ovvero non viene mai memorizzato solo in 1 posizione e rende il DB incoerente)?
Potete per favore pubblicare il tuo modello di dati? Sembra che tu sia sulla strada giusta con l'approccio denormalizzato. Per la seconda parte, potrebbe essere necessario utilizzare un servizio (o una fabbrica) per assicurarsi che gli utenti e i dati dei gruppi vengano aggiornati in un'unica posizione. Che cosa hai fatto finora? –
Quello che ho in mente è semplicemente avere/groups/{group_id}/members e/users/{user_id}/gruppi con membri un array di id utenti e raggruppa una matrice di id di gruppo. Utente e Gruppo verranno aggiornati nello stesso luogo ma voglio essere sicuro che il database sia sempre coerente, anche nel caso estremo in cui il server si blocca dopo aver aggiornato il gruppo ma prima di aggiornare l'utente. – maalls
Ho cambiato la mia domanda per renderla più chiara. – maalls