Alcune cose da considerare:
- L'architettura del tuo database ha un impatto assolutamente nullo sui tuoi clienti e viceversa. Un'API si trova tra questi due livelli e dovrebbe gestire tutte le traduzioni tra di loro.
- Il metodo di autenticazione dipende interamente da te. Firebase e tale supporto sono immediatamente disponibili con Facebook, Google, ecc. Ma non è necessario utilizzarlo, è possibile memorizzare un nome utente / password combo e utilizzarlo se lo si desidera.
- Comprendi che ciò che stai provando qui non è solo un grande progetto, è anche molto complesso con molti livelli. In pratica stai facendo il lavoro full-stack, che suona bene in un curriculum, ma in realtà non è qualcosa che normalmente faresti da solo.
Ora per la soluzione. Quello che vuoi è fare una scelta, vuoi ospitare il tuo database da solo o vuoi usare una piattaforma come Firebase o Azure? Se vuoi ospitarti dovrai cercare i prezzi VPS e trovare l'opzione migliore. Quindi ottenere un VPS, installare MySQL e un gestore di database, creare alcune tabelle e configurare un back-end. Se vuoi utilizzare una piattaforma come Firebase, confrontali e fai la tua scelta, non importa molto. Quindi fai lo stesso come con un VPS, ma con strumenti semplici in una console di amministrazione.
Una volta che il tuo database è in esecuzione, dovrai fornire un'API per te. Ci sono molte opzioni per la lingua se hai ospitato un VPS tu stesso, PHP, Perl, Python, NodeJS (hai fatto Javascript, giusto?), ASP, Ruby, ecc. Quando hai scelto un linguaggio lo fai praticamente ascoltare sulla porta 443 e iniziare a gestire gli endpoint. Firebase ha strumenti per impostare facilmente gli endpoint.
Il tuo primo endpoint dovrebbe essere un registro. Fornisci un nome utente e una password e qualsiasi altra cosa desideri memorizzare sul tuo utente e la salva nel database. Quindi si effettua un endpoint autenticato che verifica le credenziali dell'utente e restituisce un token da utilizzare nelle richieste successive.
Una volta che tutto ciò è fatto, puoi iniziare ad agganciare le tue app, fargli fare richieste https alla tua API e vedere la magia accadere.
Personalmente, nella tua situazione, mi piacerebbe andare con Firebase adesso. È possibile ospitare un database lì, configurare una semplice API per consentire ai client di accedervi e persino implementare analisi e crashlogger, ecc molto facilmente. Salterai tutti i grattacapi di scalare la capacità di archiviazione di un server, ottimizzando il database, creando pagine di registrazione e monitoraggio e gestendo strumenti di terze parti come il database, il gestore database e il linguaggio di back-end. Non hai per usare tutti gli strumenti di Firebase, ma è bello che siano lì e che un SDK sia incluso.