2016-07-06 35 views
5

Ich kann Benutzer in Firebase-Konsole hinzufügen -> Auth, aber ich kann nichts mehr tun, als eine E-Mail-Adresse und ein Kennwort für sie festlegen.Firebase - No displayName für Benutzer

Konnte ich in irgendeiner Weise für sie festlegen?

Antwort

9

Ich denke, wenn Sie nur wollen, Benutzer-Profil aktualisieren:

firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
    // User is signed in. 
    user.updateProfile({ 
     displayName: "Random Name" 
    }).then(function() { 
     // Update successful. 
    }, function(error) { 
     // An error happened. 
    }); 

    } else { 
    // No user is signed in. 
    } 
}); 

Zusätzlich: https://firebase.google.com/docs/auth/web/manage-users

+0

Ja, ich weiß, welche Felder authData Ich weiß aber auch, dass authData ein Feld namens "displayName" hat, das für diese Art der Authentifizierung null ist. Wenn ich zum Beispiel Google-Authentifizierung verwende, dann habe ich als Antwort meinen Google-Vor- und Nachnamen. Also meine Frage ist, kann ich solche Eigenschaften für Benutzer, die ich manuell in der Firebase-Konsole erstellen festlegen. Vielen Dank. – elzoy

+3

Es gibt keine Möglichkeit, den Anzeigenamen in der Konsole festzulegen (gute Feature-Anforderung). Bis das vorhanden ist, ist das Aufrufen der API der richtige Weg. –

+2

Ich fand diese Seite durch googeln "Firebase-Konsole Benutzerprofil bearbeiten", weil ich auch ein "shapes" eines Benutzers über die Konsole festlegen wollte und war überrascht zu finden, dass ich nicht konnte. Definitiv eine Funktion, die hinzugefügt werden sollte. – odigity

4

ich die Lösung für Ihr Problem. Also hier ist es:

Wenn Sie einen Benutzer erstellen Sie es nur mit E-Mail und Passwort, aber Sie können und die displayName in der Verheißung, dann innerhalb der .then() -Methode rufen Sie die updateProfile-Methode, und Sie sind bereit, rechts unten ist der Code:

onSubmit(formData) { 
    if(formData.valid) { 
     console.log(formData.value); 
     this.af.auth.createUserWithEmailAndPassword(
     formData.value.email, 
     formData.value.password 
    ).then(
     (success) => { 
     console.log(success); 
     success.updateProfile({ 
      displayName: "Example User", 
      photoURL: "https://example.com/jane-q-user/profile.jpg" 
     }).catch(
     (err) => { 
     this.error = err; 
     });   
     this.router.navigate(['/login']) 
     }).catch(
     (err) => { 
     this.error = err; 
     }) 
    } 
    } 

Beachten Sie, dass die display in meinem Beispiel ist auf „Beispiel User“ in der realen Anwendung, die Sie nur die Parameter hinzufügen, wie in meinem Fall soll es sein -> display: Formdata. value.name

Danke

Verwandte Themen