2017-10-20 16 views
0

Je rencontre un problème d'authentification dans Firebase via l'application android. tout va bien avec le code et les connexions. Mais je ne suis toujours pas authentifié. Je l'ai fait toutes les conditions requises commeAuthentification Firebase: la méthode signInWithEmailAndPassword ne répond pas du tout

  • ont permis Entrez votre email/mot de passe dans les méthodes de Firebase
  • Ajout de toutes les dépendances nécessaires dans build.gradle
  • vérifié avec la modification des règles (utilisateur) à null et! nul.
  • connexions
  • se fait avec succès

le problème est dans la méthode signInWithEmialAndPassword, ni le cas, ni autre déclaration est exécuté. Pourquoi cela est-il ainsi? J'ai beaucoup cherché mais en vain. J'utilise l'émulateur NEXUS 5X API 26 pas le périphérique réel. Voici le code ..

package com.example.abid.fireauthapp; 
import java.net.PasswordAuthentication; 

public class MainActivity extends AppCompatActivity { 

    private static final String TAG = "MainActivity"; 

    // .. 
    private EditText mEmailField; 
    private EditText mPasswordField; 
    private Button mLoginButton; 
    private FirebaseAuth mAuth; 
    private FirebaseAuth.AuthStateListener mAuthListener; 
    // private DatabaseReference rootRef; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mEmailField = (EditText) findViewById(R.id.emailField); 
     mPasswordField = (EditText) findViewById(R.id.passwordField); 
     mLoginButton = (Button) findViewById(R.id.loginButton); 
     mAuth = FirebaseAuth.getInstance(); 



     mAuthListener = new FirebaseAuth.AuthStateListener() { 
      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
       FirebaseUser user = firebaseAuth.getCurrentUser(); 
       if (user != null) { 
        // User is signed in 
        Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid()); 

        //show a welcome messgage and start a new activity 
        Toast.makeText(MainActivity.this, "Welcome", Toast.LENGTH_LONG).show(); 
        startActivity(new Intent(MainActivity.this,Main2Activity.class)); 

       } else { 
        // User is signed out 
        Log.d(TAG, "onAuthStateChanged:signed_out"); 
       } 
       // ... 
      } 
     }; 
     mLoginButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       StartSignIn(); 

      } 
     }); 
    } 
    @Override 
    public void onStart() { 
     super.onStart(); 
     if (mAuthListener == null) { 
      mAuth.addAuthStateListener(mAuthListener); 
     } 
    } 
    @Override 
    public void onStop() { 
     super.onStop(); 
     if (mAuthListener != null) { 
      mAuth.removeAuthStateListener(mAuthListener); 
     } 
    } 


    private void StartSignIn() { 
     String email = mEmailField.getText().toString(); 
     String pass = mPasswordField.getText().toString(); 
     if (TextUtils.isEmpty(email) || TextUtils.isEmpty(pass)){ 
      Toast.makeText(MainActivity.this, "Fields are empty...", Toast.LENGTH_LONG).show(); 
     } 
     else { 
      mAuth.signInWithEmailAndPassword(email, pass) 
        .addOnCompleteListener(this,new OnCompleteListener<AuthResult>() { 
         @Override 
         public void onComplete(@NonNull Task task) { 
          Log.d(TAG, "signInWithEmail:onComplete:" + task.isSuccessful()); 
          FirebaseUser user = mAuth.getCurrentUser(); 

          Toast.makeText(MainActivity.this, "You are sign in..", Toast.LENGTH_LONG).show(); 
          startActivity(new Intent(MainActivity.this,Main2Activity.class)); 

          //These Both if and else statement dont get executed... Why ?? 

          if (user == null) { 
           Log.w(TAG, "signInWithEmail:failed", task.getException()); 
           Toast.makeText(MainActivity.this, "Error Occured", 
             Toast.LENGTH_SHORT).show(); 
          }else{ 
           Toast.makeText(MainActivity.this, "Signed In successfully..", Toast.LENGTH_LONG).show(); 
          } 

          // ... 
         } 
        }); 
     } 


    } 
} 
+2

Afficher le code pour aider à comprendre .. – amuyu

+0

J'ai montré le code s'il vous plaît –

+0

@amuyu veuillez me guider s'il vous plaît –

Répondre

0

Changer votre code comme celui-ci.

... 
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, "signInWithEmail:success"); 
         FirebaseUser user = mAuth.getCurrentUser(); 
         Toast.makeText(MainActivity.this, "You are sign in..", Toast.LENGTH_LONG).show(); 
         startActivity(new Intent(MainActivity.this,Main2Activity.class)); 
        } else { 
         // If sign in fails, display a message to the user. 
         Log.w(TAG, "signInWithEmail:failure", task.getException()); 
         Toast.makeText(MainActivity, "Authentication failed.", 
           Toast.LENGTH_SHORT).show(); 
        } 


       } 

Que se passe-t-il?

+0

Merci maintenant son fonctionnement :) il y avait aussi des problèmes cachés. Merci pour votre réponse.. –