2016-10-27 10 views
3

私はFirebaseを初めて使用しており、電子メール/パスワードのサインイン方法を使用しています。私はうまく動作しているメソッドを持っていますが、私のサインアップフォームには、データベースに入力したいフィールドがあります。電子メール/パスワードのサインアップ方法からの私の理解は、ユーザーがサインアップしたときに電子メール/パスワードの認証がどのように格納されるかに応じて、追加のフィールドを個別に保存する必要があるということです。Firebase - 追加のユーザデータを別のDBに追加

私は自分のデータベースに、ユーザと呼ばれる追加のユーザ詳細を保存するサブセクションを作成しました。ここではfirebaseにどのように見えるかです:私はここで見つかった別の例に従っている

signUp(e) { 
     e.preventDefault(); 
     var firstName = $('.signup-first-name').val(); 
     var lastName = $('.signup-last-name').val(); 
     var userName = $('.signup-user-name').val(); 
     var password = $('.signup-user-password').val(); 
     var email = $('.signup-email').val(); 

     var auth = firebase.auth(); 

     const promise = auth.createUserWithEmailAndPassword(email,password).then(function(user) { 

     var user = firebase.auth().currentUser; 
     user.updateProfile({ 
      displayName: userName, 
     }).then(function() { 
     // Update successful. 

     // new db code here 
     var ref = new firebase("https://music-app-7a4d3.firebaseio.com"); 

     ref.onAuth(function(authData) { 
      ref.child("users").child(authData.uid).set({ 
       firstName: firstName, 
       lastName: lastName 
      }) 
     }) 
     // end new db code here 

    }, function(error) { 
     // An error happened. 
    }); 

}, function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    if (errorCode == 'auth/weak-password') { 
     alert('The password is too weak.'); 
    } else { 
     console.error(error); 
    } 
}); 

     promise.catch(e => console.log(e.message)); 

     firebase.auth().onAuthStateChanged(firebaseUser => { 
      if(firebaseUser) { 
       console.log(firebaseUser) 
      } else { 
       console.log("not logged in") 
      } 
     }); 

    } 

:ここ

enter image description here

は、私は、新しいユーザーを作成するには(リアクトに)呼んでいる関数です。

Add Extra Details on Firebase User Table

が、私は道に沿って間違って行ってきた場所がわかりません。これに関する文書はかなり弱く、助けにはならない!

答えて

6
  1. firebaseオブジェクトの初期化は、このhttps://firebase.google.com/docs/web/setupを参照してください、古いバージョンのために行われていた、それはユーザーの追加フィールドを使用してデータベースを更新するためにnew firebase()

  2. の代わりにfirebase.initializeApp(config)を使用しています

    firebase.database().ref('users/' + user.uid).set({ 
        firstName: firstName, 
        lastName: lastName 
    }) 
    
  3. このコードを使用
+0

thatsは偉大なウラジミールを働いた。私はここで正しいアプローチを使用していることを願って、私は私ができる限り最高のオンラインで見つけたものを解釈しようとしました –

+2

はい、間違いなく正しいアプローチの男です:)。私はすでにその生産にそのアプローチを使用しています。 –

+0

ですが、これらの追加プロパティはどのように取得しますか?あなたはもはやデフォルトの 'var user = firebase.auth()。currentUser;を使用することはできません。 user.customproperty; '追加のプロパティを取得するために' users 'ノードに2回目のフェッチを行う必要がありますか? – omarojo

関連する問題