Java Firebase如何在Auth中定义当前用户?
我在谷歌上使用Firebase Auth,通过Firebase文档做每一件事,在我的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
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开发人员,请考虑投票表决。▲). 我真的很感激。谢谢!