问题描述: 在Android应用中,即使我之前已经登录了Firebase,但是当前用户仍然返回null。
解决方法:
FirebaseApp.initializeApp(this);
FirebaseAuth auth = FirebaseAuth.getInstance();
FirebaseUser currentUser = auth.getCurrentUser();
if (currentUser == null) {
// 用户未登录
} else {
// 将当前用户设置为Firebase的认证对象
auth.setCurrrentUser(currentUser);
}
FirebaseAuth auth = FirebaseAuth.getInstance();
auth.addAuthStateListener(new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser currentUser = firebaseAuth.getCurrentUser();
if (currentUser == null) {
// 用户未登录
} else {
// 将当前用户设置为Firebase的认证对象
auth.setCurrrentUser(currentUser);
}
}
});
这样,无论用户是在应用启动时还是在应用运行期间登录,都会更新当前用户对象。
请注意,以上代码示例是基于Firebase身份验证模块。如果您使用的是其他Firebase模块(如实时数据库或云消息传递),则仍然需要进行相应的身份验证和用户管理操作。