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 для отправки друзьям, чтобы они могли проверить его. Когда они попробовали это, приложение не входило в систему, не потому, что учетные данные неверны, а потому, что не удалось запустить следующее намерение (отображается тост: «Signin Successful») ; поэтому вместо того, чтобы начинать следующее намерение, оно возвращает меня к намерению подписки (кстати, подписка - это моя первая страница при запуске приложения).
Смущает то, что на моем телефоне все работало нормально (кстати, я запускаю из android studio для тестирования на моем телефоне), и я решил установить выпущенный apk, который я отправил своим друзьям.
После этого мое приложение стало работать точно так же, как на их телефонах. (не запускается следующее намерение после успешного входа в систему) .. теперь я попытался переустановить apk отладки, и мое приложение продолжает работать так же ..
Теперь мое приложение работает совершенно по-другому, и именно из этого (MainActivity) следует, что если какое-либо из полей пустое, оно должно всплыть «Это ошибка с ошибкой». но вместо этого он говорит «Извините, пользователь зарегистрирован».
Это также делает нечто похожее, когда вы заполняете все поля и нажимаете кнопку «Создать новую учетную запись», выдается тост с надписью «Это тост за ошибку». вместо "Извините, пользователь зарегистрирован" или "Регистрация прошла успешно!"