2016-07-15 131 views

risposta

12

è possibile aggiornare il profilo con FIRUserProfileChangeRequest classe .. Verificare this Doc.

let user = FIRAuth.auth()?.currentUser 
    if let user = user { 
     let changeRequest = user.profileChangeRequest() 

     changeRequest.displayName = "Jane Q. User" 
     changeRequest.photoURL = 
      NSURL(string: "https://example.com/jane-q-user/profile.jpg") 
     changeRequest.commitChangesWithCompletion { error in 
     if let error = error { 
      // An error happened. 
     } else { 
      // Profile updated. 
     } 
     } 
    } 
+2

Non è possibile aggiungere contemporaneamente nome display e photourl quando si crea un nuovo utente con e-mail e password? – Alex

+0

no .... non c'è altro modo ... dopo la creazione è necessario aggiornare il profilo utente –

+0

Sono in grado di ottenere il displayName e photoUrl dal codice ora. Questi due campi non sono mostrati nella console di autenticazione di Firebase. Dovrebbe essere così? – Alex

0

Semplicemente è possibile risolvere il problema come segue.

1) Creare un utente utilizzando la seguente dichiarazione.

firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {}); 

2) successo della dichiarazione di cui sopra Si prega di autenticare questo utente come segue.

 self.rootRef.authUser(email, password) 
// USER_ID = Here you get user_ID 

3) Il successo di sopra funzione set nome utente e immagine del profilo di utente come segue.

usersRef.updateChildValues(dict, withCompletionBlock: 

-Ecco userRef contiene i tuoi UserDetails/USER_ID

potrebbe essere il lavoro per voi. Ho il codice ma lavoro per la versione precedente di Firebase quindi non funziona per te altrimenti ho condiviso con te.

0

Penso che intendi aggiungere il nome visualizzato e l'url della foto al database Firebase dopo Auth. Questo è praticamente ciò che faccio tutti sulla stessa registrazione.

if let email = emailField.text where email != "", let pwd = passwordField.text where pwd != ""{ 

     FIRAuth.auth()?.createUserWithEmail(email, password: pwd, completion: { (user, error) in 
      if error != nil { 
       print("DEVELOPER: Unable to authenticate with Firebase using email") 
      }else { 
       print("DEVELOPER: Successfully authenticated with Firebase using email") 
       if let user = user { 
        let userData = ["provider": user.providerID, "userName": "\(user.displayName)", "profileImg": "\(user.photoURL)"] 
        self.completeMySignIn(user.uid, userData: userData) 
       } 
      } 
     }) 

    } else { 
     // Email and Password where not filled in 
    } 
} 

Ora aggiungere la vostra immagine del profilo e gli utenti nome utente nel DB qui

func completeMySignIn(id: String, userData: Dictionary<String, String>){ 
    {YourFirebaseUserURL}.updateChildValues(userData) 
} 
0

Per cambiare/aggiungere il nome visualizzato:

user!.createProfileChangeRequest().displayName = "Your name"

Per cambiare/aggiungere photoURL

user!.createProfileChangeRequest().photoURL = URL(string: "image url")

+0

@Alex NO WAY !!! Sono contento di sentirti amico e così felice che tu stia continuando lo sviluppo iOS! Resta in contatto con l'uomo, ecco la mia email. [email protected] –