E-mail les usagers enregistrés DisplayName n'est pas affiché après la première connexion

voix
0

Lorsqu'un utilisateur se connecte pour la première fois , il arrive à un écran d' accueil où il tape un nom d' utilisateur. Après avoir cliqué sur un bouton , il arrive à la MainActivity où dans le NavigationDrawer devrait être son nom d' utilisateur créé. Le problème est que le nom d' utilisateur n'est affiché après qu'il se déconnecte et à nouveau. Je sais que cela a été un bogue dans le Firebase SDK Android v9.8.0 mais cela devrait être résolu maintenant droit? Y at - il quelque chose de mal avec mon code ou est - ce encore un bug? Voici la question que je me réfère à: displayName montrant null après avoir créé l' utilisateur avec Firebase Auth

Voici l'activité où l'utilisateur crée un nom d'utilisateur et le nom d'utilisateur essentiellement remplace « Null »:


...

firstScreenButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

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

                String usernameInput = username.getText().toString();

                String currentUserName =user.getDisplayName();

                ...

                // When the user typed in a username he gets to the MainActivity
                } else {
                    createUsername();
                    saveUsername();
                    Intent intent = new Intent (CreateUsername.this, MainActivity.class);
                    startActivity(intent);
                    Toast.makeText(CreateUsername.this, Welcome + currentUserName, Toast.LENGTH_SHORT).show();
                    finish();
                    }
            }
        });

    }
// Here I save the typed in username to to firestore
public void saveUsername (){

        FirebaseUser userMail = FirebaseAuth.getInstance().getCurrentUser();

        String email = userMail.getEmail();

        String newUser = username.getText().toString();

        String userID = FirebaseAuth.getInstance().getCurrentUser().getUid();

        Map<String, Object> user = new HashMap<>();
        user.put(KEY_USERNAME, newUser);

         ...
// Creates a new username for the new user, which is displayed in the menu but only when the user closes and opens the app again

    // TODO: 2019-10-08 Fix the method so the username is displayed right after creating it

    public void createUsername (){

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

        String usernameInput = username.getText().toString();

        UserProfileChangeRequest profileUpdates = new UserProfileChangeRequest.Builder()
                .setDisplayName(usernameInput)
                .build();

        user.updateProfile(profileUpdates)
                .addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        if (task.isSuccessful()) {
                            Log.d(TAG, Success);
                        }
                    }
                });

...

Aussi le message de pain grillé qui est affiché après que l'utilisateur a créé un nom d'utilisateur, retourne « null Bienvenue » alors cela signifierait que, à ce stade, le nom d'utilisateur n'a pas été mis à jour.

Créé 09/10/2019 à 13:01
source utilisateur
Dans d'autres langues...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more