Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pas d'envoi du mail de verification Firebase

    5 février 2020 à 18:23:33

    Bonjour à tous. Je reviens avec un nouveau problème. Je souhaiterais que les utilisateurs utilisant la méthode email/password reçoivent un mail pour valider leur compte. Mon problème et que l'envoi du mail de vérification de l'adresse mail fonctionne uniquement pour ceux se connectant avec google.

    Quequ'un a deja eu se problème ou en connais la cause ?

    class LoginActivity : AppCompatActivity() {
        private val myRequestCode: Int = *****
        private lateinit var providers: List<AuthUI.IdpConfig>
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_login)
            providers = listOf(
                //AuthUI.IdpConfig.FacebookBuilder().build(),// LOGIN FACEBOOK
                AuthUI.IdpConfig.GoogleBuilder().build(),// LOGIN GOOGLE
                AuthUI.IdpConfig.EmailBuilder().build(),// LOGIN EMAIL
                AuthUI.IdpConfig.PhoneBuilder().build()// LOGIN SMS
            )
            val auth = FirebaseAuth.getInstance()
            val user = auth.currentUser
            //Si PERSONNE DE CONNECTE ON AFFICHE LES BOUTONS DE CONNEXION
            if (user == null || user.toString() == "USER") {
                //SI PAS DE RESEAU
                if (!isConnected(this)) {
                    val intent = Intent(this, MainActivity::class.java)
                    startActivity(intent)
                    Toast.makeText(this, "Connnexion nécessaire.", Toast.LENGTH_SHORT).show()
                } //SI RESEAU
                else {
                    showSignInOptions()
                }
            } //Se lance si on est connecté au lancement de l'application
            else {
                //SI PAS DE RESEAU
                if (!isConnected(this)) {
                    val intent = Intent(this, MainActivity::class.java)
                    startActivity(intent)
                    Toast.makeText(this, "Connnexion nécessaire.", Toast.LENGTH_SHORT).show()
                } //SI RESEAU
                else {
                    //Se lance si on est connecté en memoire au lancement de l'application
                    val intent = Intent(this, SplashScreenActivity::class.java)
                    startActivity(intent)
                }
            }
        }
    
        override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
            super.onActivityResult(requestCode, resultCode, data)
            if (requestCode == myRequestCode) {
                val response = IdpResponse.fromResultIntent(data)
                if (resultCode == Activity.RESULT_OK) {
                    // obtention de l'utilisteur après connection
                    val user = FirebaseAuth.getInstance().currentUser
                    if (user != null) {
                        //Se lance à chaque connection
                        creationUser(user)
                        val intent = Intent(this, SplashScreenActivity::class.java)
                        startActivity(intent)
                        if (user.email != null) {
                            Toast.makeText(this, "" + user.email, Toast.LENGTH_SHORT).show()
                        } else if (user.phoneNumber != null) {
                            Toast.makeText(this, "" + user.phoneNumber, Toast.LENGTH_SHORT).show()
                        }
                    }
                } else {
                    val intent = Intent(this, MainActivity::class.java)
                    startActivity(intent)
                    Toast.makeText(this, "" + response!!.error!!.message, Toast.LENGTH_SHORT).show()
                }
            }
        }
    
        private fun showSignInOptions() {
            startActivityForResult(
                AuthUI.getInstance().createSignInIntentBuilder()
                    .setAvailableProviders(providers)
                    .setTheme(R.style.LoginTheme)
                    .setIsSmartLockEnabled(false, true)
                    .build(), myRequestCode
            )
        }
    }
    fun creationUser(user: FirebaseUser) {
        val db = FirebaseFirestore.getInstance()
        val userNew = hashMapOf(
            "name" to user.displayName,
            "score" to 0
        )
        val docRef = db.collection("users").document(user.uid)
        docRef.get()
            .addOnSuccessListener { document ->
                if (!document.exists()) {
                    sendEmailVerification()
                    db.collection("users").document(user.uid)
                        .set(userNew)
    
                }
            }
    }
    
    private fun sendEmailVerification() {
        // [START send_email_verification]
        val auth = FirebaseAuth.getInstance()
        val user = auth.currentUser
        println("PRINTLN USER 1"+user!!.email+" + "+user.isEmailVerified)
        user.sendEmailVerification()
            .addOnCompleteListener { task ->
                if (task.isSuccessful) {
                    Log.d("MESSAGE", "Email sent.")
                }
            }
        // [END send_email_verification]
    }

    Merci à l'aide que l'on pourra un nouvelle fois m'apporte.


    • Partager sur Facebook
    • Partager sur Twitter
      24 juin 2020 à 16:00:23

      si ma réponse ne marche pas va voir :

      https://firebase.google.com/docs/auth/android/manage-users

      ajoute :

      FirebaseAuth auth =FirebaseAuth.getInstance();
      FirebaseUser user = auth.getCurrentUser();

      user
      .sendEmailVerification()
             
      .addOnCompleteListener(newOnCompleteListener<Void>(){
                 
      @Override
                 
      publicvoid onComplete(@NonNullTask<Void> task){
                     
      if(task.isSuccessful()){
                         
      Log.d(TAG,"Email sent.");
                     
      }
                 
      }
             
      });

      sa envois un mail dans la langue du système de l'utilisateur.

      en espérant avoir aider :)

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'envoi du mail de verification Firebase

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown