2016-07-06 5 views
5

Kullanıcıları Firebase konsoluna ekleyebilirim -> Kimlik Doğrulama, ancak onlar için bir e-posta ve parola belirlemekten başka bir şey yapamam.Firebase - no displayName kullanıcı için

Bir şekilde onlar için displayName ayarlanmış olabilir misiniz?

cevap

9

sadece kullanıcıların profil güncellemek istiyorsanız sanırım: Ayrıca

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. 
    } 
}); 

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

+0

Evet, hangi alanların olduğunu biliyorum authData ama authData'nın bu tür kimlik doğrulaması için null olan "displayName" adında bir alana sahip olduğunu da biliyorum. Örneğin, Google kimlik doğrulaması kullandığımda, displayName yanıtını Google adıma ve soyadım olarak aldım. Bu yüzden sorum şu: Firebase konsolunda manuel olarak oluşturduğum kullanıcılar için bu özellikleri ayarlayabilir miyim? Teşekkür ederim. – elzoy

+3

Konsolda ekran ismini ayarlamanın bir yolu yok (iyi özellik talebi olsa da). Mevcut olana kadar, API’yı çağırmak yoldur. –

+2

Bu sayfayı googling tarafından "firebase konsolu kullanıcı profili düzenle" bölümünde buldum çünkü ben de bir kullanıcının 'displayName'ını konsol aracılığıyla ayarlamak istedim ve yapamayacağımı şaşırdım. Kesinlikle eklenecek bir özellik. – odigity

4

Ben senin sorun için bir çözüm var. Yani burada:

Bir kullanıcı oluşturduğunuzda, bunu yalnızca e-posta ve parola ile oluşturuyorsunuz, ancak sözdiziminde displayName ve displayName sonra updateProfile yöntemini çağırdığınız .then() yönteminin içinde ve hazırsınız demektir. formData: -> displayName benim örnekte displayName olması gerektiği benim durumumda olarak "Örnek Kullanıcı", gerçek uygulamada sadece parametre eklemek için ayarlanmış olduğunu

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; 
     }) 
    } 
    } 

Not: sağ aşağı kodudur. value.name

Teşekkürler