web-dev-qa-db-fra.com

ne peut pas résoudre firebase 'updateUI'

J'essaie d'authentifier les utilisateurs avec un email et un mot de passe via firebase. Mais cela montre ne peut pas résoudre updateUI (utilisateur) . Voici cette partie du code.

public void OnContinue(View view) {
    if(hasClickedCountinueOnce){
        EditText emailTextBox = (EditText)findViewById(R.id.email);
        String user = userNAAME.getText().toString();
        String passwordText = password.getText().toString();
        String email = emailTextBox.getText().toString();
        //todo manage new account here
        if(!user.isEmpty() && !passwordText.isEmpty() ){
            mAuth.createUserWithEmailAndPassword(email, passwordText)
                    .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            if (task.isSuccessful()) {
                                // Sign in success, update UI with the signed-in user's information
                                Log.d("SignInFailed", "createUserWithEmail:success");
                                FirebaseUser user = mAuth.getCurrentUser();
                                updateUI(user);
                            } else {
                                // If sign in fails, display a message to the user.
                                Log.w("SignInFailed", "createUserWithEmail:failure", task.getException());
                                Toast.makeText(SignUP.this, "Authentication failed.",
                                        Toast.LENGTH_SHORT).show();
                                updateUI(null);
                            }
                        }
                    });
        }
    }
}
4
Chirag Kalra

Le code provient du projet Firebase Quickstart-Android . Voilà ce que cela fait. Vous pouvez implémenter quelque chose de similaire:

   private void updateUI(FirebaseUser user) {
        hideProgressDialog();
        if (user != null) {
            mStatusTextView.setText(getString(R.string.google_status_fmt, user.getEmail()));
            mDetailTextView.setText(getString(R.string.firebase_status_fmt, user.getUid()));

            findViewById(R.id.sign_in_button).setVisibility(View.GONE);
            findViewById(R.id.sign_out_and_disconnect).setVisibility(View.VISIBLE);
        } else {
            mStatusTextView.setText(R.string.signed_out);
            mDetailTextView.setText(null);

            findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE);
            findViewById(R.id.sign_out_and_disconnect).setVisibility(View.GONE);
        }
    }
7
Bob Snyder

Vous devez écrire votre propre méthode UpdateUI personnalisée dans votre MainActivity et écrire le code de ce que doit faire votre application lorsqu'un utilisateur est connecté avec une condition, par exemple if(user!=null)..

0
Anuragraphy

updateUI void privé (compte @Nullable GoogleSignInAccount) { if (compte! = null) { mStatusTextView.setText (getString (R.string.signed_in_fmt, account.getDisplayName ()));

        findViewById(R.id.sign_in_button).setVisibility(View.GONE);
        findViewById(R.id.sign_out_and_disconnect).setVisibility(View.VISIBLE);
    } else {
        mStatusTextView.setText(R.string.signed_out);

        findViewById(R.id.sign_in_button).setVisibility(View.VISIBLE);
        findViewById(R.id.sign_out_and_disconnect).setVisibility(View.GONE);
    }
}
0
Pawan Kumar

Votre codage pour l'authentification fonctionne. 

Quel est le but de FirebaseUser user = mAuth.getCurrentUser (); Dans la connexion réussie?

Pour obtenir l'utilisateur actuel, vous devez implémenter Auth Change Listner after success login, en tant que,

private FirebaseAuth.AuthStateListener mAuthListener;
mAuthListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
                FirebaseUser user = firebaseAuth.getCurrentUser();
                if(user !=null){
                   updateUI(user);
                }
            }
        };


mAuth.addAuthStateListener(mAuthListener);

(Utilisez un nom de variable différent)

0
Arnold Brown

Si je rencontre correctement votre problème avec le code limité que vous avez partagé ci-dessus, l'appel de fonction "updateUI" est ici ( https://firebase.google.com/docs/auth/Android/password-auth ) est l'appel/la fonction que vous devez écrire vous-même pour mettre à jour vos éléments de l'interface utilisateur, et comme @BobSnyder l'a mentionné, voici le lien vers un code de référence ( https://github.com/firebase/quickstart-Android/blob/master/ auth/app/src/main/Java/com/google/firebase/quickstart/auth/EmailPasswordActivity.Java # L209 )

0
Scorpion_Abhi