如何在 Parse 中修复“无效的用户名/密码”
Posted
技术标签:
【中文标题】如何在 Parse 中修复“无效的用户名/密码”【英文标题】:How to fix"Invalid username/password" in Parse 【发布时间】:2019-02-05 08:03:40 【问题描述】:我正在使用解析服务器开发一个具有signup
和Login
的应用程序,我可以在其中注册,但是当我尝试登录时它给了我异常
“无效的用户名/密码”
这是signUp
和LogIn
的代码,当signUpMode 处于活动状态时,用户会在signUpmode 处于非活动状态时按下按钮进行注册,即false 按钮充当登录并且用户可以登录,但是当我在这里时尝试登录它说“无效的用户名/密码”
public void signUp(View view)
editTextUser =(EditText) findViewById(R.id.userNameEdit);
editTextPass =(EditText) findViewById(R.id.passWordEdit);
if(editTextUser.getText().toString().matches("") || editTextPass.getText().toString().matches(""))
Toast.makeText(this,"Username and Password required",Toast.LENGTH_SHORT).show();
else
if(SignupModeActive)
ParseUser user = new ParseUser();
user.setUsername(editTextUser.getText().toString());
user.setPassword(editTextUser.getText().toString());
user.signUpInBackground(new SignUpCallback()
@Override
public void done(ParseException e)
if(e == null)
Log.i("saveInBackGround","SignUp Success");
Intent intent = new Intent(MainActivity.this,UserslistActivity.class);
startActivity(intent);
else
Toast.makeText(MainActivity.this,e.getMessage(),Toast.LENGTH_SHORT).show();
);
else
ParseUser.logInInBackground(editTextUser.getText().toString(),editTextPass.getText().toString(), new LogInCallback()
@Override
public void done(ParseUser user, ParseException e)
if(user != null)
Log.i("LogInBackGround","Login Succesfull");
Intent logInintent = new Intent(MainActivity.this,UserslistActivity.class);
startActivity(logInintent);
else
Toast.makeText(MainActivity.this,e.getMessage(),Toast.LENGTH_LONG).show();
);
【问题讨论】:
【参考方案1】://检查你的异常
public void signUp(View view)
mEditTextUser =(EditText) findViewById(R.id.userNameEdit);
mEditTextPass =(EditText) findViewById(R.id.passWordEdit);
if(mEditTextUser .getText().toString().trim().length()==0 || editTextPass.getText().toString().trim().length()==0.matches(""))
Toast.makeText(this,"Username and Password required",Toast.LENGTH_SHORT).show();
else
//Check SignupMode is true
if(SignupModeActive)
ParseUser user = new ParseUser();
user.setUsername(editTextUser.getText().toString());
user.setPassword(editTextUser.getText().toString());
user.signUpInBackground(new SignUpCallback()
@Override
public void done(ParseException e)
if(e == null)
Log.e("Exception",e.printStackTrace());
Intent intent = new Intent(MainActivity.this,UserslistActivity.class);
startActivity(intent);
else
Toast.makeText(MainActivity.this,e.getMessage(),Toast.LENGTH_SHORT).show();
);
else
ParseUser.logInInBackground(editTextUser.getText().toString(),editTextPass.getText().toString(), new LogInCallback()
@Override
public void done(ParseUser user, ParseException e)
if(user != null)
Log.i("LogInBackGround","Login Succesfull");
Intent logInintent = new Intent(MainActivity.this,UserslistActivity.class);
startActivity(logInintent);
else
Toast.makeText(MainActivity.this,e.getMessage(),Toast.LENGTH_LONG).show();
);
【讨论】:
Signupmode 的数据类型是 boollen ,我将其初始化为 true 并检查其是否为 true 是否应该注册否则登录,当登录未登录时出现异常 异常是什么?【参考方案2】:您的登录代码没问题,我会说您检查您提供的详细信息是否真实。也许他们不是任何具有该名称或密码的用户,您的提要是错误的。 我正在使用类似的代码,它工作正常。我的代码是:-
ParseUser.logInInBackground(edtEmail.getText().toString(),
edtPassword.getText().toString(), new LogInCallback()
@Override
public void done(ParseUser user, ParseException e)
if (user != null && e == null)
FancyToast.makeText(Login.this, user.get("username") + " is logged in successfully", FancyToast.LENGTH_LONG, FancyToast.SUCCESS, true).show();
transitionToWelcomePage();
else
FancyToast.makeText(Login.this, e.getMessage(), FancyToast.LENGTH_LONG, FancyToast.ERROR, true).show();
);
【讨论】:
以上是关于如何在 Parse 中修复“无效的用户名/密码”的主要内容,如果未能解决你的问题,请参考以下文章
ORA-01017: 使用 ODP.NET 托管驱动程序连接到 9i oracle 数据库时用户名/密码无效
如何在我的 android 应用程序中修复 INSTALL_PARSE_FAILED_MANIFEST_MALFORMED
如何修复:JSON.parse (<anonymous>) 位置 0 处的 JSON 中的意外标记 <