Java Firebase如何在Auth中定义当前用户?

Java Firebase如何在Auth中定义当前用户?,java,android,firebase,firebase-authentication,Java,Android,Firebase,Firebase Authentication,我在谷歌上使用Firebase Auth,通过Firebase文档做每一件事,在我的SigninActivity中,我有onStart方法,检查是否有当前用户 @Override protected void onStart() { super.onStart(); Log.d(TAG, "onStart"); // Check if user is signed in (non-null) and update UI accordingl

我在谷歌上使用Firebase Auth,通过Firebase文档做每一件事,在我的
SigninActivity
中,我有onStart方法,检查是否有当前用户

@Override
    protected void onStart() {
        super.onStart();
        Log.d(TAG, "onStart");
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        updateUI(currentUser);
    }
还有

FirebaseAuth.getInstance().signOut();
它注销了用户

我无法理解Firebase如何定义当前用户,当他还没有登录时。
应用程序是否有唯一的ID或如何使用?

根据您的评论:

是的,而且我也不明白,Firebase如何知道当前用户,当他还没有登录时?我的意思是,Firebase在此方法中检查哪些条件FirebaseUser currentUser=mAuth.getCurrentUser()

Firebase通过检查对象是否为空来“知道”当前用户何时登录。如果用户已登录,则在使用以下代码行时:

FirebaseUser currentUser = mAuth.getCurrentUser();
FirebaseAuth.getInstance().signOut();
它返回一个不可为空的
FirebaseUser
对象。这就是为什么我们总是检查它是否为空。如果您正在使用以下代码行:

FirebaseUser currentUser = mAuth.getCurrentUser();
FirebaseAuth.getInstance().signOut();

这意味着
FirebaseUser
变为
null
,这也意味着该用户已注销。

您完全搞错了。若在onStart中执行getUser之前还并没有登录用户,它将为您提供NPE,因为该用户还不存在。例如,FirebaseAuth中有一个类似signInUserWithEmailAndPassword(电子邮件,密码)的方法,您在从登录屏幕获取用户详细信息后调用该方法,然后在FirebaseAuth帐户中创建用户,并在本地保存,可能保存在SharedReferences中。检查您是否正在使用其他方法登录用户。@AlexMamo,是的,我也不明白,Firebase如何知道当前用户,当他还没有登录时?我的意思是,Firebase在这个方法中检查哪些标准
FirebaseUser currentUser=mAuth.getCurrentUser()Firebase如何识别单个用户?每个用户都有自己的FixBid ID或SMTH吗?如果你认为我的答案也有助于未来的FialBasic开发人员,请考虑投票表决。▲). 我真的很感激。谢谢!