Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Firebase实时数据库中检索用户用户名以获取欢迎回信?_Java_Android - Fatal编程技术网

Java 如何从Firebase实时数据库中检索用户用户名以获取欢迎回信?

Java 如何从Firebase实时数据库中检索用户用户名以获取欢迎回信?,java,android,Java,Android,我有一个android studio项目,用户可以使用电子邮件地址和密码登录。用户的用户名在注册时存储在Firebase的实时数据库中。 如何从数据库中检索用户名,以便在成功登录后显示欢迎返回(用户名)消息 我已经附加了主屏幕java,这是我希望消息出现的地方。 我还附加了登录java,用户在其中输入电子邮件和密码。 用户在其中输入其详细信息的register类和user类 提前谢谢,我对代码还很陌生,所以请原谅我的无知 package com.example.securityapp; 导入a

我有一个android studio项目,用户可以使用电子邮件地址和密码登录。用户的用户名在注册时存储在Firebase的实时数据库中。 如何从数据库中检索用户名,以便在成功登录后显示欢迎返回(用户名)消息

我已经附加了主屏幕java,这是我希望消息出现的地方。 我还附加了登录java,用户在其中输入电子邮件和密码。 用户在其中输入其详细信息的register类和user类

提前谢谢,我对代码还很陌生,所以请原谅我的无知

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方法中,您可以启动一个新的活动,传递所需的参数