1
votes

Impossible de résoudre la méthode updateUI ()

J'essaie d'ajouter une connexion Google avec Firebase à mon projet, en suivant la documentation officielle de la connexion Google.

https://developers.google.com/identity/sign-in/android/sign-in

J'ai déjà vu d'autres questions mais personne ne peut résoudre mon problème. Je ne comprends pas si je dois créer ma propre méthode updateUI () ou si je dois ajouter des bibliothèques, et si je dois l'écrire, ce que je dois faire. Le code est court et simple

package com.database.gabriele.databasefb;


import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import com.google.android.gms.auth.api.signin.GoogleSignIn;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.common.SignInButton;
import com.google.firebase.auth.FirebaseAuth;


public class MainActivity extends AppCompatActivity {

    SignInButton button;
    FirebaseAuth mAuth;
    private final static int RC_SIGN_IN = 2;
    GoogleSignInClient mGoogleSignInClient;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestEmail()
                .build();

        mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

        button = (SignInButton) findViewById(R.id.sign_in_button);
    }

    @Override
    protected void onStart()
    {
        super.onStart();
        GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(this);
        updateUI(account);
    }
}

Lorsque j'essaye d'exécuter le code, cela me renvoie l'erreur "Impossible de résoudre la méthode updateUI (...)"


0 commentaires

3 Réponses :


6
votes

C'est parce que vous n'avez pas cette méthode dans votre classe, vous devez la créer en fonction de vos besoins. La documentation mentionnait uniquement que vous deviez effectuer des mises à jour de l'interface utilisateur au démarrage de l'application.

Par exemple, vérifiez si l'utilisateur est déjà connecté ou non et faites quelque chose en conséquence:

//Change UI according to user data.
public void updateUI(FirebaseUser account){

    if(account != null){
        Toast.makeText(this,"U Signed In successfully",Toast.LENGTH_LONG).show();
        startActivity(new Intent(this,AnotherActivity.class));

    }else {
        Toast.makeText(this,"U Didnt signed in",Toast.LENGTH_LONG).show();
    }

}


0 commentaires

0
votes
La méthode

UpdaeUI () sert uniquement à mettre à jour l'interface utilisateur avec l'état d'authentification actuel de l'utilisateur, comme si l'utilisateur est déjà connecté ou non si l'utilisateur est déjà connecté, elle redirige l'utilisateur vers l'écran d'activité du tableau de bord sinon sur écran de connexion.

Quand je faisais cela, j'avais la même question, pour rendre cela facile, j'ai créé une application uniquement pour l'authentification des utilisateurs en utilisant Firebase. vous pouvez voir mon code sur github en utilisant le lien ci-dessous. J'espère que cela vous aidera à comprendre.

https://github.com/Vijay-Tahelramani/Android_Firebase_Authentication

Il vous permettra de créer des fonctions de connexion, d'inscription, d'oubli et de changement de mot de passe, de déconnexion automatique. il vous permet également d'envoyer le nom d'utilisateur et l'image de profil.


0 commentaires

1
votes

C'est une question intéressante que vous posez et qui vous laisse en suspens si vous lisez la documentation. Disons que vous souhaitez enregistrer un utilisateur de manière anonyme à l'aide de votre application. Vous pouvez utiliser ce code

    updateUI(String user)
{
Toast.makeText(MainActivity.this, user+" <- this is the user", Toast.LENGTH_LONG).show();
}

donc cette ligne

String user = mAuth.getCurrentUser().toString();

vous donnera la chaîne renvoyée pour l'utilisateur actuel.

Vous pouvez maintenant transmettre ceci à la méthode updateUI (user) et en faire ce que vous voulez. 1. Vérifiez s'il y a une valeur 2. Enregistrez la valeur 3. etc. etc. Pour ce faire, vous devez écrire la méthode

   final  FirebaseAuth mAuth;
        mAuth = FirebaseAuth.getInstance();
        mAuth.signInAnonymously()
                .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(TAG, "signInAnonymously:success");
                            String user = mAuth.getCurrentUser().toString();
                            updateUI(user);
                        } else {
                            // If sign in fails, display a message to the user.
                            Log.w(TAG, "signInAnonymously:failure", task.getException());
                            Toast.makeText(getApplicationContext(), "Authentication failed.",
                                    Toast.LENGTH_SHORT).show();
                            updateUI(null);
                        }

                        // ...
                    }
                });

Je sais que c'est un exemple simple. Je recherche toujours des exemples simples et non la solution complexe.


0 commentaires