как проверить имя пользователя и пароль для входа в приложение

Я разрабатываю регистрацию и вход в систему Android для пользователей.

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

Особенно я хотел сравнить имя пользователя и пароль пользователя с анализом

Как я могу это сделать ?

Вот мой код:

public class ParseStarterProjectActivity extends Activity {
EditText ed1, ed2, ed3;
TextView tv1;
Button b1, b2;

/** Called when the activity is first created. */
@SuppressLint("CutPasteId")
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    b1 = (Button) findViewById(R.id.button1);
    b2 = (Button) findViewById(R.id.button2);
    ed1 = (EditText) findViewById(R.id.editText1);
    ed2 = (EditText) findViewById(R.id.editText2);
    ed3 = (EditText) findViewById(R.id.editText3);

    b1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {

            // Set up a new Parse user
            ParseUser user = new ParseUser();
            user.setUsername(ed1.getText().toString());
            user.setPassword(ed2.getText().toString());

            // Set up a progress dialog
            final ProgressDialog dlg = new ProgressDialog(
                    ParseStarterProjectActivity.this);
            dlg.setTitle("Please wait.");
            dlg.setMessage("Signing up.  Please wait.");
            dlg.show();

            user.signUpInBackground(new SignUpCallback() {
                @Override
                public void done(ParseException e) {
                    dlg.dismiss();
                    if (e != null) {
                        // Show the error message
                        Toast.makeText(ParseStarterProjectActivity.this,
                                e.getMessage(), Toast.LENGTH_LONG).show();
                    } else {
                        // Start an intent for the dispatch activity
                        Toast.makeText(getApplicationContext(),
                                "Signup Successful", Toast.LENGTH_LONG)
                                .show();

                    }
                }
            });
        }
    });

    b2.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            ParseQuery<ParseUser> query = ParseUser.getQuery();
            query.whereEqualTo("Username", User);
            query.findInBackground(new FindCallback<ParseUser>() {
                public void done(List<ParseUser> objects, ParseException e) {
                    if (e == null) {
                        // The query was successful.
                        Intent intent = new Intent(
                                ParseStarterProjectActivity.this,
                                Sub1.class);
                        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK
                                | Intent.FLAG_ACTIVITY_NEW_TASK);
                        startActivity(intent);
                    } else {
                        // Something went wrong.
                        Toast.makeText(getApplicationContext(),
                                "Login Failed", Toast.LENGTH_LONG).show();
                    }
                }
            });

        }

    });
}
}

person user3440681    schedule 07.04.2014    source источник
comment
уже зарегистрируйтесь, проверьте на сервере, чувак, дайте пропуск и адрес пользователя и получите ответ, потому что, если вы проверяете базу данных, и если кто-то удаляет chache из настроек, тогда ничего не будет в базе данных.   -  person Bhanu Sharma    schedule 07.04.2014


Ответы (1)


При регистрации уже зарегистрированного пользователя вместо использования ParseQuery используйте

ParseUser.logInInBackground("username", "password", new LogInCallback(){
    public void done(ParseUser user, ParseException e) {
        if (user != null && e == null){
            //login was successful
        }
    }
});

Статический метод ParseUser.getCurrentUser() всегда будет давать вам текущего пользователя, вошедшего в систему, или null, если он вышел из системы.

Я также рекомендую ознакомиться с документацией по Parse для пользователей по адресу https://www.parse.com/docs/android_guide#users

person Peter    schedule 30.04.2014