我正在使用Messaging App。在我的应用程序中,可以注册一个人的电话号码。一切都很好。这一切都与Firebase有关。 Here is the official documentation, where I learned it.
但现在我遇到了问题。每次活动开始时,它都应该自动登录,对吗?我怎样才能做到这一点?
和一点点不同的问题。当用户使用FirebaseAuth.getInstance().signOut();
注销时,他如何登录?因为他只用phonenumber创建了一个帐户,没有密码或任何东西....只有firebase发送的短信代码。
修改
所以我尝试了这个:
if(mFirebaseUser != null) mFirebaseUser.reload().addOnCompleteListener(this, new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(!task.isSuccessful()) {
if (mFirebaseUser == null) {
String exc = task.getException().getMessage();
Log.d("FireBaseUser", exc);
mFirebaseAuth.getInstance().signOut();
startActivity(new Intent(ChatListActivity.this, LoginActivity.class));
finish();
Log.d("FireBaseUser", "User doesnt exist");
return;
}
else {
Log.d("FireBaseUser", "User is ok!");
return;
}
}
else{
Log.d("FireBaseUser", "????");
}
}
});
else {
Log.d("FireBaseUser", "User is null");
} }
});
但它不起作用。用户可以登录...我做错了什么?似乎代码不会运行。因为我在日志中看不到任何内容。每次我运行它发出的代码:User is null
答案 0 :(得分:0)
1)我认为如果第一次认证成功,你应该在SharedPreferences中保存电话号码
答案 1 :(得分:0)
FirebaseUser mUser = mAuth.getCurrentUser();
if (mUser == null) {
// not logged-in
// show login activity
} else {
// logged-in
String phoneNumber = mUser.getPhoneNumber();
// ...
}