9

Sto costruendo un'app per Android e voglio che i miei utenti siano Auth quindi aggiunti al database. Per ora sto solo facendo l'Auth con un email e una password, poi clicco su register e l'utente viene creato nella sezione Auth nella console Firebase.Crea utente nel database dopo Firebase Auth (android)

Ma voglio anche che i miei utenti vengano aggiunti nel database. Voglio aggiungere altri campi (come nome, indirizzo ecc.) Che saranno archiviati nel database degli utenti in Firebase.

Non vedo davvero come farlo. Qualcuno potrebbe spiegare per favore?

Grazie!

+1

Vedi http://stackoverflow.com/a/37420701/4695325 –

+1

È per aggiungere proprietà aggiuntive, ma non per spiegare come creare l'oggetto utente nel database in primo luogo ... – raphh

+0

Devo creare una sorta di struttura nel database (usando la console Firebase)? Come ho detto prima, una volta collegato un nuovo utente, questo viene citato nella scheda 'Auth' ma la scheda 'Database' è ancora vuota. – raphh

risposta

5

È necessario creare un nodo in cui si salvano le utenti, in questo modo:

users: { 
    userID1: { 
    name: 'Raph' 
    }, 
    userID2: { 
    name: 'Devid' 
    } 
} 

Ogni utente registrato ha un unico uid che è possibile utilizzare come chiave. Puoi trovarlo nel authToken quando accedi al tuo utente.

NOTA questo è solo un nodo normale in Firebase che usi per salvare i dati dell'utente. È una soluzione alternativa allo Firebase generated users.

+0

Ok, ho creato "utenti" facendo clic sul verde "+", così ora quando vado a http: // .firebaseio.com/users/userID1, ho userID1 (la lunga stringa K9gdkDgfd ...) con "null" scritto. Non dovrei essere in grado di vedere l'e-mail e la password come, i dati degli utenti che sono appena stati creati?Non capisco davvero come gestirlo dal codice, ho pensato che tutto dovrebbe essere impostato nel db (come, creare manualmente la struttura e poi riempirlo con gli utenti quando creano il loro account sull'app) – raphh

+0

E nel mio codice , per ora, faccio solo 'auth.createUserWithEmailAndPassword (email, password)' – raphh

+0

Puoi trovare quei dati (email, provider, nome, ma non la password) nel authToken quando accedi al tuo utente e inseriscili in firebase. Firebase crea internamente il profilo degli utenti (vedere il collegamento nella mia risposta) ma consente di memorizzare solo pochi dati. Se vuoi salvare più informazioni dovresti usare questo metodo. Spero di essere chiaro :) –

1

Ecco un modo per memorizzare i dati registrati nel database,

Map<String, String> parameters = new HashMap<>(); 
FirebaseDatabase mFirebaseInstance; 
parameters.put(Constant.TAG_USER, strUsrS.trim()); 
parameters.put(Constant.TAG_PASS, strPassS.trim()); 
//use this if needed(pushId) 
String pushId = mFirebaseInstance.getReference(YOUR TABLE NAME).getRef().push().getKey(); 
parameters.put(Constant.TAG_KEY, pushId.trim()); 

mFirebaseInstance.getReference(YOUR TABLE NAME).getRef().child(strUsrS.trim()).setValue(parameters); 

Prova questa implementazione ed esecuzione ... Grazie

Problemi correlati