2016-07-06 20 views

答えて

9

あなただけのユーザープロファイルを更新したい場合、私は推測する:さらに

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

はい、私はどのフィールドauthData authDataには "displayName"という名前のフィールドがあり、そのタイプの認証ではnullと認識されています。たとえば、Google認証を使用すると、Googleの名前と姓としてdisplayNameが応答します。だから私の質問は、私が手動でfirebaseコンソールで作成するユーザのためのそのようなプロパティを設定することができますです。ありがとうございました。 – elzoy

+3

コンソールに表示名を設定する方法はありません(ただし、機能の要求はあります)。それが存在するまで、APIを呼び出すことが最善の方法です。 –

+2

私はコンソール上でユーザーの 'displayName'を設定したかったので、" firebase console edit user profile "というグーグルでこのページを見つけました。間違いなく追加されるべき機能。 – odigity

4

私はあなたの問題の解決策を持っています。

ユーザを作成するときには、電子メールとパスワードで作成することができますが、promiseのdisplayNameを使用することができます。次に、.then()メソッド内でupdateProfileメソッドを呼び出して、右下のコードです:私の例でのdisplayNameが「例ユーザー」に設定されていることを

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

注意、あなたはちょうど私の場合のようにパラメータを追加し、実際のアプリでそれがあるべき - >のdisplayName:FORMDATA。値.name

ありがとうございました

関連する問題