Электронная почта зарегистрированных пользователей DISPLAYNAME не отображается после первого входа в систему

голоса
0

Когда пользователь входит в систему в первый раз , он получает на экране приветствия , где он печатает в имени пользователя. После нажатия на кнопку , он попадает в MainActivity , где в NavigationDrawer должен быть его создал имя пользователя. Проблема заключается в том , что имя пользователя отображается только после того, как он выходит из и снова. Я знаю , что это было ошибкой в v9.8.0 Firebase Android SDK , но это должен быть решен уже в порядке? Есть ли что - то случилось с моим кодом , или это все - таки ошибка? Вот вопрос , который я имею в виду: DISPLAYNAME показывает нуль после создания пользователя с Firebase Auth

Вот активность, когда пользователь создает имя пользователя и в основном переписывает «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);
                        }
                    }
                });

...

Кроме того, сообщение тост, который отображается после того, как пользователь создал имя, возвращает «Welcome нуль», так это будет означать, что в данный момент имя пользователя не было обновлено.

Задан 09/10/2019 в 13:01
источник пользователем
На других языках...                            

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