E-mail utilizatori înregistrați displayName nu este afișat după prima conectare

voturi
0

Atunci când un utilizator se conectează pentru prima dată când ajunge la un ecran de bun venit unde tasteaza un nume de utilizator. După ce faceți clic pe un buton el ajunge la MainActivity în cazul în care în NavigationDrawer ar trebui să fie numele de utilizator creat. Problema este, că numele de utilizator este afișat numai după ce dezautentifica și din nou. Știu că acest lucru a fost un bug în v9.8.0 Firebase Android SDK - ul , dar acest lucru ar trebui să fie rezolvată până acum nu? Este ceva în neregulă cu codul meu sau este încă un bug? Aici este întrebarea mă refer la: displayName care arată nul după crearea utilizator cu Firebase Auth

Aici este activitatea în cazul în care utilizatorul creează un nume de utilizator și practic suprascris „Null“ nume de utilizator:


...

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

...

De asemenea, mesajul pâine prăjită, care este afișat după ce utilizatorul a creat un nume de utilizator, returneaza „null Welcome“, astfel încât acest lucru ar însemna că, în acest moment numele de utilizator nu a fost actualizat.

Întrebat 09/10/2019 la 13:01
sursa de către utilizator
În alte limbi...                            

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