gpt4 book ai didi

java - 如何使用Button自动向Firebase进行身份验证 - Java

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:40:21 26 4
gpt4 key购买 nike

我正在为一家公司开发一个应用程序,该公司有几辆公共汽车和电车,它们在不同的路线/线路上行驶,并将客人运送到不同的酒庄。
无论如何,我最初设计的应用程序是让驱动程序使用电子邮件和密码登录到firebase数据库。
但是系统混淆了驱动程序和它的笨重等等,所以我想通过点击一个按钮来实现登录系统的自动化。
这就是我目前所拥有的。
登录系统


public class DriverLoginActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
private EditText mEmail, mPassword;
private Button mLogin, mRegistration, mRegisterDriver,mBackBtn;

private FirebaseAuth mAuth;
private FirebaseAuth.AuthStateListener firebaseAuthListener;



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_driver_login);

mBackBtn = findViewById(R.id.back_login_btn);
mBackBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(DriverLoginActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
});
mRegistration= (Button) findViewById(R.id.btn_reg);
mRegistration.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(DriverLoginActivity.this, BusRegistrationActivity.class);
startActivity(intent);
finish();
return;
}
});

mAuth = FirebaseAuth.getInstance();

firebaseAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if(user != null){
Intent intent = new Intent(DriverLoginActivity.this, DriverMapActivity.class);
startActivity(intent);
finish();
return;
}
}
};

mEmail = (EditText) findViewById(R.id.email);
mPassword = (EditText) findViewById(R.id.password);

mLogin = (Button) findViewById(R.id.login);
mLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String email = mEmail.getText().toString().replace(" ","");
final String password = mPassword.getText().toString().replace(" ","");

if(!TextUtils.isEmpty(email) && !TextUtils.isEmpty(password)) {
mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(DriverLoginActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {

Toast.makeText(DriverLoginActivity.this, "sign in error", Toast.LENGTH_SHORT).show();
} else
mAuth.addAuthStateListener(firebaseAuthListener);
}
});

}
}
});


}

@Override
protected void onStart() {
super.onStart();
mAuth.addAuthStateListener(firebaseAuthListener);
}

@Override
protected void onStop() {
super.onStop();
mAuth.removeAuthStateListener(firebaseAuthListener);
}




@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}


@Override
public void onNothingSelected(AdapterView<?> parent) {

}
}


这就是我想要的样子。
驱动程序点击他想登录的线路,代码只是登录一个预定的登录并验证用户身份。每行只有一个登录名,因此对于红线,例如登录名是redlinedriver@bus.com
enter image description here
我要求一个建议,一个方向或一些文件,我可以看。
我看过了firebase数据库的文档,什么都没有
我在StackOverflow上找不到任何与我要找的东西相关的东西。
这个应用程序是为非常具体的用户谁是雇员,以便用户可以登录为任何人。

最佳答案

像这样,创建一个验证用户身份的方法。

  public void authenticateUser(final String mEmail, final String mPassword){

final String email = mEmail.replace(" ","");
final String password = mPassword.replace(" ","");

if(!TextUtils.isEmpty(email) && !TextUtils.isEmpty(password)) {
mAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(DriverLoginActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {

Toast.makeText(DriverLoginActivity.this, "sign in error", Toast.LENGTH_SHORT).show();
} else
mAuth.addAuthStateListener(firebaseAuthListener);
}
});

}

}

然后在登录详细信息中解析
        mLogin = (Button) findViewById(R.id.login);
mLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
authenticateUser("redlinedriver@bus.com","123456");
}
});

关于java - 如何使用Button自动向Firebase进行身份验证 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57187776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com