2016-11-22 5 views
0

это, как я зарегистрировал users..but он ничего не базы данных отправки хотя регистрация завершается нормальноПочему мое приложение останавливается после того, как я нажимаю кнопку

private void registerUser(){ 



     //getting email and password from edit texts 
     String email = editTextEmail.getText().toString().trim(); 
     String password = editTextPassword.getText().toString().trim(); 

     //checking if email and passwords are empty 
     if(TextUtils.isEmpty(email)){ 
      Toast.makeText(this,"Please enter email",Toast.LENGTH_LONG).show(); 
      return; 
     } 

     if(TextUtils.isEmpty(password)){ 
      Toast.makeText(this,"Please enter password",Toast.LENGTH_LONG).show(); 
      return; 
     } 

     //if the email and password are not empty 
     //displaying a progress dialog 

     progressDialog.setMessage("Registering Please Wait..."); 
     progressDialog.show(); 


     //creating a new user 
     firebaseAuth.createUserWithEmailAndPassword(email, password) 
       .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
        @Override 
        public void onComplete(@NonNull Task<AuthResult> task) { 
         //checking if success 
         if(task.isSuccessful()){ 
          finish(); 
          startActivity(new Intent(getApplicationContext(), ProfileActivity.class)); 
         }else{ 
          //display some message here 
          Toast.makeText(MainActivity.this,"Registration Error",Toast.LENGTH_LONG).show(); 
         } 
         progressDialog.dismiss(); 
        } 
       }); 

    } 

тогда вот мой Логин. Мероприятия. я могу войти в систему, просто отлично, но мне интересно, что такое cretiria, этот код используется для входа пользователей?

private void userLogin(){ 
    String email = editTextEmail.getText().toString().trim(); 
    String password = editTextPassword.getText().toString().trim(); 


    //checking if email and passwords are empty 
    if(TextUtils.isEmpty(email)){ 
     Toast.makeText(this,"Please enter email",Toast.LENGTH_LONG).show(); 
     return; 
    } 

    if(TextUtils.isEmpty(password)){ 
     Toast.makeText(this,"Please enter password",Toast.LENGTH_LONG).show(); 
     return; 
    } 

    //if the email and password are not empty 
    //displaying a progress dialog 

    progressDialog.setMessage("Registering Please Wait..."); 
    progressDialog.show(); 

    //logging in the user 
    firebaseAuth.signInWithEmailAndPassword(email, password) 
      .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        progressDialog.dismiss(); 
        //if the task is successfull 
        if(task.isSuccessful()){ 
         //start the profile activity 
         finish(); 
         startActivity(new Intent(getApplicationContext(), ProfileActivity.class)); 
        } 
       } 
      }); 

} 
+1

трассировки стека? это кнопка specialiec? – MordechayS

+1

сообщение logcat error –

+0

yes @MordenachayS вот мой файл mainactivity.xml –

ответ

0

изменить лицо класса, как этот

public class Person { 

    private String Username; 
    private String Email; 

    public Person(String email,String userName) { 
    this.Username=userName; 
    this.Email=email; 

     /*Blank default constructor essential for Firebase*/ 
    } 
    //Getters and setters 
    public String getUsername() { 
     return Username; 
    } 

    public void setUsername(String Username) { 
     this.Username = Username; 
    } 

    public String getEmail() { 
     return Email; 
    } 

    public void setEmail(String Email) { 
     this.Email = Email; 
    } 
} 

затем использовать его как этот

Person person=new Person(); 
person.setUsername(Username); 
person.setEmail(Email); 
Firebase newRef = ref.child("Users").push(); 
newRef.setValue(person); 

затем использовать это, чтобы получить значения

newRef.addChildEventListener(new ChildEventListener() { 
      @Override 
      public void onChildAdded(DataSnapshot dataSnapshot, String s) { 
       Person person = dataSnapshot.getValue(Person.class); 
String string = "Username: "+person.getName()+"\nEmail: "+person.getEmail()+"\n\n"; 

      } 

      @Override 
      public void onChildChanged(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onChildRemoved(DataSnapshot dataSnapshot) { 

      } 

      @Override 
      public void onChildMoved(DataSnapshot dataSnapshot, String s) { 

      } 

      @Override 
      public void onCancelled(FirebaseError firebaseError) { 

      } 
     }); 
+0

проблема все еще там ... данные отправляются в firebase должным образом, но программа останавливается сразу после этого ... @ UmarAta –

+0

изменена ли ошибка –

+0

11-22 21: 14: 15.522 30892-30892/com.example.moses.bstation E/UncaughtException: com.firebase.client.FirebaseException: Не удалось отскочить до типа на com.firebase.client.DataSnapshot.getValue (DataSnapshot.java: 185) at com.example.moses.bstation.MainActivity $ 1 $ 1.onDataChange (MainActivity.java:57) –

0

Проблема описана здесь:

com.fasterxml.jackson.databind.JsonMappingException: Может не Instantiate значение типа [простой тип, класс com.example.moses.bstation. Person] из значения String; ни одна струна конструктор метод/завод

Кажется, что отображение между JSON ответ и Person класса неверен.

Дважды проверьте свою реализацию класса Person, также, пожалуйста, поделитесь своей реализацией класса Person и образцом от ответа JSON.

+0

данные отправляются в мою firebase правильно, но после этого приложение останавливается –

Смежные вопросы