2017-10-22 11 views
0

私はAndroidベースのアプリケーションにFirebaseAuthUIを導入しました。ユーザーがFacebook、Twitter、電話番号、またはGmailを通じて私のアプリにログインできる場所。私が直面している問題は、ユーザーの情報(Facebook、Twitter、Gmail、およびサインインしたユーザーの電話番号を使用してログインしている場合、ユーザーの名前を取得する方法がわからないことですFireBaseAuthUIを使用してアプリにログインまたはサインインしたときに表示されます。 onActivityResultメソッドでこの情報を何とか取得できますか?そうでない場合は、ログインするか、アプリにログインするたびに、自分のユーザーの情報(名前、電子メールID、電話番号でログインしたユーザーの電話番号)を取得するにはどうすればいいですか?FireBaseでログインまたはログインしたユーザーのプロファイル情報を取得する方法AuthUI

ここに私のコード成功したログイン後

package com.example.anonymous.userlogin; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import com.firebase.ui.auth.AuthUI; 
import com.firebase.ui.auth.ErrorCodes; 
import com.firebase.ui.auth.IdpResponse; 
import com.google.firebase.auth.FirebaseAuth; 
import java.util.Arrays; 
public class MainActivity extends AppCompatActivity { 
    private static final int RC_SIGN_IN = 123; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     FirebaseAuth auth = FirebaseAuth.getInstance(); 
     if (auth.getCurrentUser() != null) 
      { 

      } 
     else 
      { 
      // not signed in 
       startActivityForResult(
         AuthUI.getInstance() 
           .createSignInIntentBuilder() 
           .setIsSmartLockEnabled(false) 
           .setAvailableProviders(
             Arrays.asList(new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build(), 
               new AuthUI.IdpConfig.Builder(AuthUI.PHONE_VERIFICATION_PROVIDER).build(), 
               new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(), 
               new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build(), 
               new AuthUI.IdpConfig.Builder(AuthUI.TWITTER_PROVIDER).build())) 
           .setTheme(R.style.MyLoginTheme) 
           .build(), 
         RC_SIGN_IN); 
      } 
    } 


    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     // RC_SIGN_IN is the request code you passed into startActivityForResult(...) when starting the sign in flow. 
     if (requestCode == RC_SIGN_IN) { 
      IdpResponse response = IdpResponse.fromResultIntent(data); 


      // Successfully signed in 
      if (resultCode == RESULT_OK) { 

       finish(); 
       return; 
      } else { 
       // Sign in failed 
       if (response == null) { 
        // User pressed back button 

        return; 
       } 

       if (response.getErrorCode() == ErrorCodes.NO_NETWORK) { 

        return; 
       } 

       if (response.getErrorCode() == ErrorCodes.UNKNOWN_ERROR) { 

        return; 
       } 
      } 


     } 
    } 
} 

答えて

1

あなたは

FirebaseAuth auth = FirebaseAuth.getInstance(); 
FirebaseUser user = auth.getCurrentUser(); 

次のコードスニペットを試してみて、ユーザーオブジェクトからいくつかの関連データを取得しようとすることができます。それが役に立てば幸い。

関連する問題