2016-07-15 11 views
5

を持つユーザーを作成し、私は、新しいユーザーを作成するには、このコードを使用しています新しいユーザーを作成するとき?はFirebase電子メール、パスワード、表示名や写真のURL Firebaseサイトによると

このlinkは、AuthのIDプロバイダから返されたサポートされているユーザーデータを示しています。あなたがFIRUserProfileChangeRequestクラスで自分のプロフィールを更新することができ

答えて

12

... 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

メールとパスワードを使って新しいユーザーを作成するときに、表示名と写真を同時に追加する方法はありませんか? – Alex

+0

いいえ他の方法はありません...作成後、ユーザープロフィールを更新する必要があります –

+0

コードからdisplayNameとphotoUrlを取得できました。これらの2つのフィールドは、Firebase Authコンソールには表示されません。それはそれのようになっているのだろうか? – Alex

0

をチェックするだけで、あなたは次のようにあなたの問題を解決することができます。

1)次の文を使用してユーザーを作成します。上記の文の

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

2)成功は、に次のようにこのユーザを認証してください。

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

3)上記の機能が成功すると、以下のようにユーザ名とプロフィール画像がユーザに設定されます。

usersRef.updateChildValues(dict, withCompletionBlock: 

-Here userRefはあなたuserDetails/USER_ID

はあなたのために働くことかもしれませんが含まれています。 私はコードを持っていますが、古いfirebaseバージョンで動作します。それ以外の場合はうまく動作しません。

0

Authの後にFirebaseデータベースに表示名と写真のURLを追加することを意味します。これは、私がすべて同じ登録でやっていることです。今すぐあなたのプロフィール画像とユーザーを追加する

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

はここDBにユーザー名

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

表示名を追加/変更するには:

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

変更/追加photoURL

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

+0

@Alex NO WAY !!!あなたから聞いてうれしいので、iOS開発を続けていてうれしいです!私の電子メールを連絡してください。 [email protected] –

関連する問題