Partage
  • Partager sur Facebook
  • Partager sur Twitter

Android studio impossible d'utiliser realtime dbse

Impossible d'écrire dans realtimeDatabase

    2 février 2021 à 9:08:01

    Bonjour,

    je viens vers vous car je n'arrive pas a écrire dans realtime database de Firebase. Voici mon code :

    package com.example.smartparkuser;
    
    import androidx.annotation.NonNull;
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.util.Patterns;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.ProgressBar;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.google.android.gms.tasks.OnCompleteListener;
    import com.google.android.gms.tasks.Task;
    import com.google.firebase.auth.AuthResult;
    import com.google.firebase.auth.FirebaseAuth;
    import com.google.firebase.database.DatabaseReference;
    import com.google.firebase.database.FirebaseDatabase;
    
    public class Inscription extends AppCompatActivity implements View.OnClickListener {
    
        private TextView baniere;
        private Button sinscrire;
        private EditText editTextnom, editTextemail, editTexttel, editTextplaque, editTextmdp;
        private ProgressBar progressbar;
    
        private FirebaseAuth mAuth;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_inscription);
    
            mAuth = FirebaseAuth.getInstance();
    
            sinscrire = (Button) findViewById(R.id.sinscrire);
            sinscrire.setOnClickListener(this);
    
            editTextnom = (EditText) findViewById(R.id.editTextnom);
            editTextemail = (EditText) findViewById(R.id.editTextemail);
            editTexttel = (EditText) findViewById(R.id.editTexttel);
            editTextplaque = (EditText) findViewById(R.id.editTextplaque);
            editTextmdp = (EditText) findViewById(R.id.editTextmdp);
    
            progressbar = (ProgressBar) findViewById(R.id.progressbar);
    
        }
    
        @Override
        public void onClick(View v) {
    
            switch (v.getId()){
                case R.id. sinscrire:
                    sinscrire();
                    break;
            }
    
        }
    
        private void sinscrire() {
    
            String nom = editTextnom.getText().toString().trim();
            String email = editTextemail.getText().toString().trim();
            String tel = editTexttel.getText().toString().trim();
            String plaque = editTextplaque.getText().toString().trim();
            String mdp = editTextmdp.getText().toString().trim();
    
            if(nom.isEmpty()){
                editTextnom.setError("Veuillez entrer votre nom");
                editTextnom.requestFocus();
                return;
            }
    
            if(email.isEmpty()) {
                editTextemail.setError("Veuillez entrer votre adresse e-mail");
                editTextemail.requestFocus();
                return;
            }
    
            if(!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
                editTextemail.setError("Merci d'entrer une adresse e-mail valide");
                editTextemail.requestFocus();
                return;
            }
    
            if(tel.isEmpty()) {
                editTexttel.setError("Veuillez entrer votre numéro de téléphone");
                editTexttel.requestFocus();
                return;
            }
    
            if(tel.length() != 10) {
                editTexttel.setError("Merci d'entrer un numéro de téléphone valide");
                editTexttel.requestFocus();
                return;
            }
    
            if(plaque.isEmpty()) {
                editTextplaque.setError("Veuillez entrer votre plaque d'immatriculation");
                editTextplaque.requestFocus();
                return;
            }
    
            if(plaque.length() !=9) {
                editTextplaque.setError("Merci d'entrer une plaque d'immatriculation valide au format AA-000-AA");
                editTextplaque.requestFocus();
                return;
            }
    
            if(mdp.isEmpty()){
                editTextmdp.setError("Veuillez entrer un mot de passe");
                editTextmdp.requestFocus();
                return;
            }
    
            if(mdp.length() < 6){
                editTextmdp.setError("Merci d'entrer un mot de passe de plus de 6 caractères");
                editTextmdp.requestFocus();
                return;
            }
    
            progressbar.setVisibility(View.VISIBLE);
            mAuth.createUserWithEmailAndPassword(email, mdp)
                    .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
    
                            if(task.isSuccessful()){
                                User user = new User(nom, email, tel, plaque);
    
                                FirebaseDatabase.getInstance().getReference("Utilisateurs")
                                        .child(FirebaseAuth.getInstance().getCurrentUser().getUid())
                                        .setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
                                    @Override
                                    public void onComplete(@NonNull Task<Void> task) {
    
                                        if(task.isSuccessful()){
                                            Toast.makeText(Inscription.this, "Vous avez bien été enregistré !", Toast.LENGTH_LONG).show();
                                            progressbar.setVisibility(View.GONE);
    
                                        }else {
                                            Toast.makeText(Inscription.this, "L'enregistrement a échoué, veuillez réessayer plus tard", Toast.LENGTH_LONG).show();
                                            progressbar.setVisibility(View.GONE);
                                        }
    
                                    }
                                });
    
    
                            }else{
                                Toast.makeText(Inscription.this, "L'enregistrement a échoué, veuillez réessayer plus tard", Toast.LENGTH_LONG).show();
                                progressbar.setVisibility(View.GONE);
                            }
                        }
                    });
    
        }
    }



     L'application compile, j'arrive a stocker mon email et mdp avec authentificator mais ensuite, la progressbar tourne en continu. le probleme peut peut etre venir de la class User mais je ne pense pas avoir fait d'erreur :

    package com.example.smartparkuser;
    
    import java.util.stream.Stream;
    
    public class User {
    
        public String nom, email, tel, plaque;
    
        public User(){
    
        }
    
        public User(String nom, String email, String tel, String plaque){
            this.nom = nom;
            this.email = email;
            this.tel = tel;
            this.plaque = plaque;
        }
    }
    



     j'ai eu beau chercher pendant de longues heures, je n'arrive pas a trouver. à mon avis, le problème se trouve au niveau des autorisations sur firebase mais j'ai autorisé la lecture et l'écriture, j'ai bien importé les bibliotheques (manuellement, et avec l'assistant firebase inclu dans android studio) mais rien ne se passe. J'ai aussi essayé sur un programme annexe de seulement écrire ou lire des données mais aucun des deux ne fonctionne, c'est pour ça qu'une erreur dans les autorisations me parait la plus plausible.

    j'espere avoir transmis toute les informations nécessaires !

    Merci d'avance !

    Lucas

    -
    Edité par LucasBodin1 2 février 2021 à 10:12:12

    • Partager sur Facebook
    • Partager sur Twitter
      16 avril 2021 à 12:11:51

      Bonjour, 

      Avez vous résolu votre probleme? Je n'arrive pas du tout a me connecter à firebase ça me met ce message, j'ignore si ça vous met la même chose :

      Firebase: Connect to Firebase failed. Please check your internet connection and try again. If errors persist, you can connect manually at https://console.firebase.google.com

      • Partager sur Facebook
      • Partager sur Twitter
        1 décembre 2021 à 10:24:54

        Bonjour, 

        Désolé pour la réponse tardive ! si vous cherchez toujours à résoudre votre problème, je peux vous aider ! concernant le mien, les serveurs européens de firebase étant en beta, ils ne fonctionnaient pas. J'ai donc du choisir les serveurs américains et le probleme était réglé !

        Lucas

        • Partager sur Facebook
        • Partager sur Twitter
          1 décembre 2021 à 21:06:07

          LucasBodin1 a écrit:

          [...] J'ai donc du choisir les serveurs américains et le probleme était réglé !

          Bonjour,

          Sujet résolu

          Tu peux passer le sujet à "résolu" (bouton en haut à droite du sujet) et cliquer sur les pouces levés des messages qui t'ont aidé⋅e ;)

          • Partager sur Facebook
          • Partager sur Twitter

          Android studio impossible d'utiliser realtime dbse

          × 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