2017-01-19 10 views
2

Firebaseを初めて使用しました。私はFirebaseのドキュメントを見ていて、それは良いようです。しかし、私が気づいたことの1つは、ユーザー登録/サインアップ時に電子メールIDとパスワードのみを取得できることです。Firebaseのユーザサインアップのためにさらにデータを入力する必要があります

しかし、私のアプリでは、ユーザーに名前、住所、電話番号などの詳細を入力する必要があります。これどうやってするの?

私はリアルタイムデータベースを使用できると思っていましたが、リアルタイムデータベースからそれぞれの詳細をどのように合わせるかはわかりませんでした。これを行う方法について私にいくつかのアイデアを教えてください。

答えて

3

あなたはそうです。 一部のユーザーデータを保存するには、リアルタイムデータベースを使用する必要があります。 email、photoURL、displayNameのようなユーザに割り当てることができるプロパティはほとんどありませんが、それ以上の場合はデータベースを使用する必要があります。 私はデータベースに "users"ノードを作成しました。新しいユーザーが登録するたびに、uidの新しいエントリが挿入されます。下のスクリーンショットをチェックしてください:

enter image description here

だから、あなただけ与えられた「現在のユーザのuid」と「ユーザー」ノードの子を呼び出して、ユーザーデータを取得する必要がありますたびに。

+0

あなたはどのようにするのかの例/スニペットを追加できますか? –

1

登録が成功したら、firebaseデータベースのすべての詳細を取得し、更新してください。

final String emailId = mEditTextEmail.getText().toString() ; 
String password = mEditTextPassword.getText().toString() ; 
firebaseRef.createUser(emailId, password, new Firebase.ValueResultHandler<Map<String,Object>>() { 
     @Override 
     public void onSuccess(Map<String, Object> stringObjectMap) { 

          User user = new User(); 
          user.setUid(stringObjectMap.get("uid").toString()); 
          user.setEmail(emailId); 
          user.setProfileStatus(User.NEW); 
          firebaseRef.child("Users").child(user.getUid()).setValue(user); 
          mProgressBar.setVisibility(View.GONE); 

          Intent intent = new Intent(SignupActivity.this,LoginActivity.class); 
          intent.putExtra("email",mEditTextEmail.getText().toString()); 
          startActivity(intent); 

          Toast.makeText(getBaseContext(),"You are Successfully Registered in",Toast.LENGTH_SHORT).show(); 
          Toast.makeText(getBaseContext(),"Login to continue..",Toast.LENGTH_SHORT).show(); 

         } 
関連する問題