2017-12-31 231 views
2

私のFirebaseアプリケーションで作業中ですが、現在、意図したとおりに動作しないため、ロジックに関する助けが必要です。パスワードが正しい場合のみFirebaseが "DisplayName"に変更されます

ログインしたユーザーが正しいパスワードを入力した場合にのみ名前を変更できるようにしようとしています。

私の現在のコードでは、入力されたパスワードが正しいことをトーストメッセージにもかかわらず名前が変更されています。

/** 
    * Update Name Only 
    */ 
    private void updateDisplayNameOnly(){ 

     showProgress(); 

     AuthCredential credential = EmailAuthProvider 
       .getCredential(FirebaseAuth.getInstance().getCurrentUser().getEmail(), mConfirm.getText().toString()); 

     FirebaseAuth.getInstance().getCurrentUser().reauthenticate(credential) 
       .addOnCompleteListener(new OnCompleteListener<Void>() 
       { 
        @Override 
        public void onComplete(@NonNull Task<Void> task) 
        { 
         FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 

         UserProfileChangeRequest profileUpdate = new UserProfileChangeRequest.Builder() 
           .setDisplayName(mName.getText().toString()) 
           //.setPhotoUri(Uri.parse("https://avatarfiles.alphacoders.com/862/86285.jpg")) 
           .build(); 

         user.updateProfile(profileUpdate); 

         if (task.isSuccessful()) 
         { 
          Log.d(TAG, "onComplete: User Profile updated"); 
          hideProgress(); 

          Toast.makeText(getActivity(), "NAME IS UPDATED XD XD XD", Toast.LENGTH_SHORT).show(); 

          // RESTART APP FOR CHANGES 
         } 

        } 
       }) 
       .addOnFailureListener(new OnFailureListener() { 
        @Override 
        public void onFailure(@NonNull Exception e) { 
         hideProgress(); 
         Toast.makeText(getActivity(), "NAME WAS NOT UPDATED 2", Toast.LENGTH_SHORT).show(); 
        } 
       }); 

    } 

ている問題は、あなたの方法であなたがTask<AuthResult>Task<Void>を設定することが考えられます。この

答えて

0

で私を助けてください。コードを次のように変更しようとしています:

@Override 
    public void onComplete(@NonNull Task<AuthResult> task) { 
     if(task.isSuccessful()) 
     { 
      FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); 

      UserProfileChangeRequest profileUpdate = new UserProfileChangeRequest.Builder() 
        .setDisplayName(mName.getText().toString()) 
        //.setPhotoUri(Uri.parse("https://avatarfiles.alphacoders.com/862/86285.jpg")) 
        .build(); 

      user.updateProfile(profileUpdate); 

      Log.d(TAG, "onComplete: User Profile updated"); 
      Toast.makeText(getActivity(), "NAME IS UPDATED XD XD XD", Toast.LENGTH_SHORT).show(); 

     } 
     } else { 
      //Display what happens if you couldn't update the name 
     } 
     hideProgressDialog(); 
    }); 
関連する問題