Il metodo Firebase createUser()
accetta un campo email e password, ma cosa succede se voglio consentire all'utente un nome utente personalizzato simile a Snapchat, Instagram, StackOverflow ecc.? C'è un modo per modificare il metodo esistente per accettare quel campo o devo fare push e gestire queste informazioni manualmente e, in caso affermativo, come?Come si include un nome utente quando si archiviano email e password utilizzando Firebase (BaaS) in un'app Android?
Questo è il mio primo tentativo di memorizzare informazioni utente desiderato:
Firebase ref = new Firebase(firebaseURL);
ref.createUser(email, password, new Firebase.ValueResultHandler<Map<String, Object>>() {
@Override
public void onSuccess(Map<String, Object> result) {
System.out.println("Successfully created user account with uid: " + result.get("uid"));
//Sign user in
Firebase ref = new Firebase(firebaseURL);
ref.authWithPassword(email, password, new Firebase.AuthResultHandler() {
@Override
public void onAuthenticated(AuthData authData) {
System.out.println("User ID: " + authData.getUid() + ", Provider: " + authData.getProvider());
//Save user info
Firebase userRef = new Firebase(firebaseURL + "Users/");
User user = new User(username, authData.getUid());
userRef.setValue(user);
è questa buona pratica? Ho pensato che memorizzare l'UID con il nome utente potrebbe aiutarmi in futuro a gestire le modifiche, ecc. Inoltre, dovrei implementare il metodo updateChildren()
o push()
in modo che le voci non vengano sovrascritte se si tratta di un'app di social media?
Questo è il mio secondo tentativo:
@Override
public void onAuthenticated(AuthData authData) {
System.out.println("User ID: " + authData.getUid() + ", Provider: " + authData.getProvider());
//Save user info and username
Firebase ref = new Firebase(firebaseURL);
Map<String, String> map = new HashMap<String, String>();
map.put("email", email);
map.put("username", username);
map.put("provider", authData.getProvider());
ref.child("users").child(authData.getUid()).setValue(map);
Siamo spiacenti per la risposta tardiva. Questo sembra essere per Javascript. Ho bisogno di Java per Android. Sembra essere configurato in modo leggermente diverso per ciascuno e ho problemi a tradurre. – YoungCoconutCode
Sicuro. ** Modifica ** la tua domanda per includere il codice del tuo miglior sforzo e darò un'occhiata. –
Farà! Apprezzo molto la tua disponibilità ad aiutare! Prima domanda rapida: il genitore '' 'users''' e l'oggetto' '' authData.uid'' ... ... dovevi scriverli manualmente nel database o sono quelli creati automaticamente quando usi createUser? Non vengono visualizzati nella dashboard di Firebase e ho già autenticato alcuni pseudo-utenti.Questi oggetti sono nascosti o inaccessibili ai fini della privacy dell'utente? – YoungCoconutCode