当前位置: 首页 > 知识库问答 >
问题:

mAuth.getCurrentUser()。isEmailVerified()第一次总是返回false

高化
2023-03-14

我正在检测电子邮件是否通过标题上显示的指令与fire base进行验证,并且它可以工作,但有一个奇怪的错误。

第一次尝试验证邮件时,即使已验证,也会显示未验证。当方法再次被执行时,它返回它已被验证。

我已经检查过了,这不是时间问题,即使我从验证邮件的那一刻到我告诉应用程序检查它是否被验证的那一刻离开了很长时间,它总是在第一次尝试时失败。

我该怎么办,如果电子邮件被验证,它返回说,它是从第一次尝试验证?

共有1个答案

司雅畅
2023-03-14

显然,您仍在使用旧的Firebase IdToken,因此它显示了旧的状态。当您更新用户的自定义声明时,也会出现同样的问题,但如果您仍然继续使用旧的 idtoken,则自定义声明将不会反映出来。

user.getIdToken(true).addOnSuccessListener(new OnSuccessListener<GetTokenResult>() {
  @Override
  public void onSuccess(GetTokenResult result) {
    String idToken = result.getToken();
    //Do whatever
    Log.d(TAG, "GetTokenResult result = " + idToken);
  }
});

您应该在getIdToken中传递true,这样它将刷新令牌,然后检查电子邮件是否第一次显示为已验证。为了确保我上面解释的一切,您可以尝试登录idtoken,看看电子邮件是否在新旧idtoken上得到验证。

 类似资料:
  • 我正在开发一个使用Firebase身份验证的Android应用程序。创建新用户后,我会发送一封验证电子邮件。 在我的清单中,我添加了一个Intent过滤器,当用户尝试打开验证链接时打开我的应用。 问题是,当链接打开我的应用程序时,电子邮件没有得到验证。我有一个总是返回false的验证 只有在Web资源管理器中打开验证链接时,验证才会返回true。如何验证应用内的电子邮件?

  • 问题内容: 我很少使用SQL,也无法在档案库中找到任何类似的内容,所以我问一个简单的查询问题:我需要一个查询,该查询返回 personID 且仅返回第一个 seeedTime 记录: 想要的结果: 那就是我做过的和失败的: PS:注意SQL CE 4 问题答案: 如果您的seenTime增加,随着seenID增加: 更新另一种情况: 如果不是这种情况,并且您确实希望SeenedTime与最小的se

  • 问题内容: 我已经写了这段简单的代码: 在我的情况当属。谁能建议/建议出什么问题了? 问题答案: 错误检查和处理是程序员的朋友。检查初始化和执行cURL函数的返回值。并在失败的情况下包含更多信息: *在 手动状态: 成功返回cURL句柄,错误返回 FALSE 。 我观察到该函数在您使用其参数且无法解析域时会返回。如果未使用该参数,则该函数 可能 永远不会返回。但是,请务必始终进行检查,因为该手册并

  • 问题内容: 结果始终为1: 我在phpMyAdmin中运行了$ sql查询,它返回3,所以查询不是问题。$ vote_total全局初始化为0,因此1来自某个地方。我还需要提供什么其他信息来帮助我? 谢谢,瑞安 问题答案: 返回选定的行数,而不是特定行的字段。使用来获取您与您的查询选择的行: 您还可以用来获取一行并获取特定字段: 这将获取第一行(从零开始)并返回第一字段(从零开始)。

  • 我使用Ehcache 2.6.8作为Spring Boot应用程序的一部分,作为Hibernate 4.3.11的二级缓存。我有一个JMX MBean,它允许我检查缓存的内容(如果您感兴趣,可以在这里查看)。 首先,我使用CacheManager名称来获取缓存列表。这很好。我可以用返回缓存。然后我调用。这很好,cacheName是“com.myapp.DomainObjectName”,键被列为“

  • 问题内容: 我正在从Active Directory中获取日期值(createWhen),并将其转换为Java日期,以获取两个日期之间创建的帐户的列表。除一种方法外,一切工作正常:从AD Date到Java date的方法。该方法如下所示: 并且,对于来自AD的单个任意数据: 显然,它正确地获取了日期和年份(如果我选择包括时/分/秒,则也正确地包含了它们),但是由于某种原因,每个日期都被安排在1月