android - 电子邮件未在 Firebase 中验证

标签 android email firebase firebase-authentication

我正在使用 Firebase 的 isEmailVerified 方法来验证电子邮件。以下是代码:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_verifying);
    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    mAuth=FirebaseAuth.getInstance();
    spinner=(ProgressBar)findViewById(R.id.progressBar);
    spinner.setVisibility(View.GONE);
    Log.e("I am launched","hello");
    if(user.isEmailVerified()==true){
       Log.e("I am here","hello");
        State state= new AccountSettingUp(this);
       state.doAction();
   } else {
        Log.e("Maybe i am here","yes");
       user.sendEmailVerification()
               .addOnCompleteListener(new OnCompleteListener<Void>() {
                   @Override
                   public void onComplete(@NonNull Task<Void> task) {
                       if (task.isSuccessful()) {
                           Log.d("email", "Email sent.");
                       }
                   }
               });
   }

此处,else 代码应仅在电子邮件未验证时运行。但是,即使在我验证了电子邮件并重新启动 Activity 之后,if 语句也不是 true,并且再次发送了电子邮件。

最佳答案

此行为似乎是 Firebase 身份验证当前版本 (10.0.1) 中的一个限制,可能是一个错误。 this related question 中报告了相同的问题.

我尝试做 reload()电子邮件验证后的用户数据。那没有帮助。如相关问题中所述,似乎需要注销/登录才能获得新的电子邮件验证状态。

关于android - 电子邮件未在 Firebase 中验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40963875/

相关文章:

c# - 如何格式化 stringbuilder 以在表格中发送我的电子邮件而不是纯文本

node.js - 如何在 firebase 的云功能中添加版本

android - SharedPreferences - java.lang.Boolean 不能转换为 java.lang.String

javascript - 使用 JavaScript 即时验证电子邮件输入

android - 以编程方式创建进度图

java - 在开发模式下使用 GWT Java 发送邮件

android - Gradle 文件导致应用意外崩溃 : Error inflating class androidx. constraintlayout.ConstraintLayout

java - FirebaseUI - 在动态查询数据上填充 RecyclerView

android - 在android中更新警报对话框标题

android - ExpandableListView 不追加 child