【发布时间】:2018-07-09 21:03:53
【问题描述】:
我在我的应用程序中使用 Firebase 身份验证,用户可以使用电子邮件和密码进行注册,并且他必须验证电子邮件。
用户收到验证邮件,但当他验证并返回应用程序时,isEmailVerified() 始终为 false。所以我的应用程序仍然不允许用户使用所有功能,尽管他已经验证了他的电子邮件。
但如果他们注销并再次登录,isEmailVerified() 会立即返回 true。但是注销用户然后重新登录不是很好吗?
public class Profile extends AppCompatActivity {
FirebaseDatabase database;
DatabaseReference myRef;
TextView name;
Button logout;
FirebaseAuth auth;
String userStatus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
auth = FirebaseAuth.getInstance();
database = FirebaseDatabase.getInstance();
myRef = database.getReference("name");
name=findViewById(R.id.id_name);
logout=findViewById(R.id.id_logout);
logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
auth.signOut();
startActivity(new Intent(Profile.this, Login.class));
}
});
userStatus= String.valueOf(auth.getCurrentUser().isEmailVerified());
if (userStatus =="true")
{
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String value = dataSnapshot.getValue(String.class);
name.setText("Hello my name is: "+value);
Log.d("ashu", "Value is: " + value);
}
@Override
public void onCancelled(DatabaseError error) {
// Failed to read value
Log.d("ashu", "Failed to read value.", error.toException());
}
});
}
else {
Toast.makeText(Profile.this,"Verify your email ", Toast.LENGTH_SHORT).show();
name.setText("Verify your email");
}}}
【问题讨论】:
-
请发布您用来登录用户的代码
-
@RosárioPereiraFernandes 感谢您的考虑
标签: android firebase firebase-authentication