E-mail geregistreerde gebruikers displayName wordt niet weergegeven na de eerste login

stemmen
0

Wanneer een gebruiker zich voor de eerste keer dat hij krijgt om een welkomstscherm waar hij types in een gebruikersnaam. Na het klikken op een knop krijgt hij de MainActivity waar in de NavigationDrawer zijn gemaakt gebruikersnaam moet zijn. Het probleem is, dat de gebruikersnaam wordt alleen weergegeven nadat hij zich afmeldt en weer in. Ik weet dat dit een fout is in de Firebase Android SDK v9.8.0 maar dit moet worden opgelost door nu toch? Is er iets mis met mijn code of is het nog steeds een bug? Hier is de vraag die ik heb het over: displayName tonen null na het maken van gebruikersaccounts met Firebase Auth

Hier is de activiteit waar de gebruiker een gebruikersnaam creëert en in principe overschrijft de Null gebruikersnaam:


...

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);
                        }
                    }
                });

...

Ook de toast boodschap die wordt weergegeven nadat de gebruiker een gebruikersnaam gemaakt, keert terug Welcome null dus dit zou betekenen dat op dit punt de gebruikersnaam is niet bijgewerkt.

De vraag is gesteld op 09/10/2019 om 13:01
bron van user
In andere talen...                            

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