2016-11-22 94 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

堆栈跟踪?它是一个特定的按钮? – MordechayS

+1

发布logcat错误 –

+0

是@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

问题依然存在......数据被发送到正确的火力点,但该程序之后imediately停止... @ 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:可以键入[简单类型,类 com.example.moses.bstation的不 实例化值。人]从字符串值;没有单一的字符串 构造/工厂方法

看来,JSON响应类之间的映射是不正确。

仔细检查您的Person类的实现,也请分享您的Person类执行情况和JSON响应的样本。

+0

数据被正确发送到我的火力点,但之后应用程序停止 –

相关问题