public class MainActivity extends AppCompatActivity {
private EditText email,password,repassword,name;
private DatabaseReference mDatabase;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();// removes app title bar
getSupportActionBar().setDisplayShowTitleEnabled(false);
setContentView(R.layout.activity_main);
name = (EditText) findViewById(R.id.nameid);
email = (EditText) findViewById(R.id.emailid);
password = (EditText) findViewById(R.id.passwordid);
mDatabase=FirebaseDatabase.getInstance().getReference().child("users");
mAuth = FirebaseAuth.getInstance();
}
public void signUpButtonClicked(View view){
if (!TextUtils.isEmpty(email.getText().toString())&&!TextUtils.isEmpty(password.getText().toString())&& !TextUtils.isEmpty(name.getText().toString())){
Toasty.error(MainActivity.this, "This is an error toast.", Toast.LENGTH_SHORT, true).show();
}
else {
final ProgressDialog spinner = new ProgressDialog(MainActivity.this);
spinner.setMessage("Please wait...");
spinner.show();
mDatabase.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//check if already user phone
if (dataSnapshot.child(email.getText().toString()).exists()) {
spinner.dismiss();
Toasty.warning(MainActivity.this,"Sorry User registered",Toast.LENGTH_SHORT, true).show();
} else {
spinner.dismiss();
users User = new users(name.getText().toString(), password.getText().toString(), email.getText().toString());
mDatabase.child(email.getText().toString()).setValue(User);
Toast.makeText(MainActivity.this, "Signup Succesful !", Toast.LENGTH_SHORT).show();
Intent loginIntent = new Intent(MainActivity.this, Login.class);
startActivity(loginIntent);
finish();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
public void loginClicked( View view){
Intent startloging = new Intent(MainActivity.this,Login.class);
startActivity(startloging);
}
}
public class Login extends AppCompatActivity {
private EditText userEmail,userPassword;
private DatabaseReference mDatabase;
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();// removes app title bar
getSupportActionBar().setDisplayShowTitleEnabled(false);
setContentView(R.layout.activity_login);
userEmail = (EditText) findViewById(R.id.emailid);
userPassword = (EditText) findViewById(R.id.passwordid);
mAuth = FirebaseAuth.getInstance();
mDatabase = FirebaseDatabase.getInstance().getReference().child("users");
}
public void signUpButtonClicked(View view){
Intent signup = new Intent(Login.this,MainActivity.class);
startActivity(signup);
}
public void loginButttonClicked(View view) {
if (userPassword.getText().toString().isEmpty()|userEmail.getText().toString().isEmpty()){
Toast.makeText(this, "Please fill all!!", Toast.LENGTH_SHORT).show();
}
else {
final ProgressDialog spinner = new ProgressDialog(Login.this);
spinner.setMessage("Please wait...");
spinner.show();
mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.child(userEmail.getText().toString()).exists()) {
spinner.dismiss();
users User = dataSnapshot.child(userEmail.getText().toString()).getValue(users.class);
Common.currentuser = User;
mDatabase.removeEventListener(this);
if (User.getPassword().equals(userPassword.getText().toString())) {
Intent menuIntent = new Intent(Login.this, Menu.class);
startActivity(menuIntent);
finish();
Toasty.success(Login.this, "Signin Successful", Toast.LENGTH_SHORT, true).show();
} else {
spinner.dismiss();
Toast.makeText(Login.this, "Signin Failed", Toast.LENGTH_SHORT).show();
}
} else {
spinner.dismiss();
Toast.makeText(Login.this, "User does not exist", Toast.LENGTH_SHORT).show();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
}
所以我的应用程序在调试模式下工作正常,然后我决定构建一个签名的apk发送给我的朋友,以便他们可以检查出来。当他们尝试时,应用程序不会登录,不是因为凭据错误,而是因为它无法启动下一个意图(Toast:“Signin Successful”显示);因此,不是启动下一个意图,而是将我带回到注册活动意图(当你启动应用程序时,注册活动是我的第一页)。
令人困惑的部分是它在我的手机上工作正常(顺便说一句,我从Android工作室运行到我的手机上测试)我决定安装我发送给朋友的Released apk。 之后,我的应用程序开始表现得与在手机上完全一样。 (成功登录后没有启动下一个意图)..现在我尝试重新安装调试apk,我的应用程序仍然表现相同..
现在我的应用程序完全不同了,从这个(MainActivity)开始,如果任何字段为空,它应该Toast“这是一个错误的吐司。”但它反而说“对不起用户注册”。 当你填写所有字段并单击创建新帐户时,它也会执行类似的操作,它会为Toast提供“这是一个错误的吐司”。而不是“抱歉用户注册”或“注册成功!”
答案 0 :(得分:0)
它显示toast getThingObservable: of<Item>()
的原因是因为在This is an error toast
条件下您要检查文本框是否为空。 if
可能存在逻辑问题,如果文本字段为空,则返回true,请尝试使用 - TextUtils.isEmpty()
。
我希望它可以帮助你。