Android 为什么createUserWithEmailAndPassword设置我的当前用户变量(getCurrentUser())?

Android 为什么createUserWithEmailAndPassword设置我的当前用户变量(getCurrentUser())?,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,这是我的谷歌认证活动: public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { if(firebaseAuth.getCurrentUser() != null){ startActivity(new Intent(GoogleAuthentication.this, ChatRoomActvity.class)); } else { googleSignIn();

这是我的谷歌认证活动:

public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
    if(firebaseAuth.getCurrentUser() != null){
        startActivity(new Intent(GoogleAuthentication.this, ChatRoomActvity.class));
    } else {
        googleSignIn();
    }
}
然后,我有一个注册活动的用户谁想要注册的电子邮件和通行证。以下是一段代码片段:

mAuth.createUserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
    @Override
    public void onComplete(@NonNull Task<AuthResult> task) {
        if(task.isSuccessful()){
            mProgress.dismiss();
        } else {
            Toast.makeText(RegisterActivity.this, "Task not successfull", Toast.LENGTH_LONG).show();
        }
    }
});
mAuth.createUserWithEmailAndPassword(电子邮件,密码)。addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
mProgress.disclose();
}否则{
Toast.makeText(RegisterActivity.this,“任务未成功”,Toast.LENGTH_LONG.show();
}
}
});
登录屏幕有2个选项 1.谷歌登录 2.报名

问题是,当用户选择#2(比如注册)时,他输入user/pass,
mAuth.createUserWithEmailAndPassword
将此用户/pass添加到firebase auth db,并将此用户设置为当前用户。我不知道为什么它会将用户设置为当前用户,我只是调用了
mAuth.createUserWithEmailAndPassword
而不是
signwithemailandpassword

现在,在使用选项2之后,当用户返回到选项1时,他会直接登录聊天室活动,因为
firebaseAuth.getCurrentUser()!=空

基本上,我希望firebase
。createUserWithEmailAndPassword
不应设置我当前的用户变量。
firebaseAuth.getCurrentUser()
应为
null
,直到我使用Email和Password调用
登录之前,您必须重新考虑您的设计。的文档说明了该方法:

尝试使用给定的电子邮件地址创建新的用户帐户,并且 密码。如果成功,它还会将用户登录到应用程序中


你必须重新考虑你的设计。的文档说明了该方法:

尝试使用给定的电子邮件地址创建新的用户帐户,并且 密码。如果成功,它还会将用户登录到应用程序中


qbix的答案是正确的:创建一个用户会自动登录该用户。您可能会立即再次注销该用户。但老实说:让用户立即重新输入他们的凭据对我来说似乎是一种次优的用户体验。qbix的答案是正确的:创建一个用户会自动将该用户登录。您可能会立即再次注销该用户。但老实说:让用户立即重新输入他们的凭据对我来说似乎是一种次优的用户体验。酷,我每次登录时都会将状态存储在Db中。。。。因此,现在在登录之前,我将与getcurrentUser一起检查状态。。这有助于我更好地决定用户是注册还是实际登录:)谢谢,我每次登录时都会将状态存储在Db中。。。。因此,现在在登录之前,我将与getcurrentUser一起检查状态。。这有助于我做出更好的决定,如果用户只是注册或实际登录:)谢谢