Java 如何从Firebase实时数据库中检索用户用户名以获取欢迎回信?
我有一个android studio项目,用户可以使用电子邮件地址和密码登录。用户的用户名在注册时存储在Firebase的实时数据库中。 如何从数据库中检索用户名,以便在成功登录后显示欢迎返回(用户名)消息 我已经附加了主屏幕java,这是我希望消息出现的地方。 我还附加了登录java,用户在其中输入电子邮件和密码。 用户在其中输入其详细信息的register类和user类 提前谢谢,我对代码还很陌生,所以请原谅我的无知Java 如何从Firebase实时数据库中检索用户用户名以获取欢迎回信?,java,android,Java,Android,我有一个android studio项目,用户可以使用电子邮件地址和密码登录。用户的用户名在注册时存储在Firebase的实时数据库中。 如何从数据库中检索用户名,以便在成功登录后显示欢迎返回(用户名)消息 我已经附加了主屏幕java,这是我希望消息出现的地方。 我还附加了登录java,用户在其中输入电子邮件和密码。 用户在其中输入其详细信息的register类和user类 提前谢谢,我对代码还很陌生,所以请原谅我的无知 package com.example.securityapp; 导入a
package com.example.securityapp;
导入androidx.appcompat.app.appcompat活动;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.Button;
导入android.widget.Toast;
导入com.google.firebase.auth.FirebaseAuth;
公共类主页扩展应用程序活动{
按钮训练;
按钮签出;
按钮登录页面;
私人消防队;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
training=(按钮)findViewById(R.id.training_按钮);
signOut=(按钮)findviewbyd(R.id.sign\u out);
mAuth=FirebaseAuth.getInstance();
FirebaseAuth mAuth;
}
public void signOutUser(){
mAuth.signOut();
Toast.makeText(home.this,“注销成功!”,Toast.LENGTH\u LONG.show();
Intent\u signout=newintent(home.this、login.class);
startActivity(意向\签署);
完成();
}
public void SignoutOnClick(视图){
signOut.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
signOutUser();
}
});
}
公共作废培训取消单击(查看){
training.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
意向培训=新意向(home.this,training.class);
startActivity(意向培训);
完成();
}
});
}
公共void loginOnClick(视图){
loginPage.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
Intent Intent\u login=newintent(home.this,register.class);
startActivity(意图\登录);
完成();
}
});
}
}
试试这个
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
String name = user.getDisplayName();
String email = user.getEmail();
Uri photoUrl = user.getPhotoUrl();
// User is signed in
} else {
// No user is signed in
}
按照Firebase进行操作查看此方法:
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Log.d(TAG, "signInWithEmail:success");
FirebaseUser user = mAuth.getCurrentUser();
// Do something here...
} else {
// If sign in fails, display a message to the user..
}
}
});
mAuth.使用电子邮件和密码登录(电子邮件,密码)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Log.d(标记“signInWithEmail:success”);
FirebaseUser=mAuth.getCurrentUser();
//在这里做点什么。。。
}否则{
//如果登录失败,则向用户显示消息。。
}
}
});
登录时,请输入您可以使用的方法onComplete
FirebaseUser=mAuth.getCurrentUser()
为了获取有关用户的任何信息,如电子邮件、姓名等。将此方法插入signin方法时,我该怎么办?如何获取要在其他方法中显示的用户姓名screen@ChloeHamilton有一个功能可以保存用户名,而不必将其存储在数据库中。请使用Sushildh的答案。@Chloe Hamilton您可以按照Sushildh的建议执行,或者在onComplete方法中,您可以启动一个新的活动,传递所需的参数