我的Firebase Auth-UI用户元数据有问题

时间:2019-02-06 16:32:29

标签: firebase

我正在使用Firebase Auth UI在我的应用程序中注册和存储用户。

当用户是新用户时,我需要注册一些东西,因此我需要知道用户何时是新用户。

根据文档,我使用正确的方式检查新用户: Auth-UI Metadata

我检查用户是否是新用户的方法是比较元数据,用户创建时间戳和上次签名时间戳,并且效果很好。

if (metadata.getCreationTimestamp() == metadata.getLastSignInTimestamp()){
  //do some new user stuff
}else{
 //log in old user
}

此代码目前无法正常工作,因为它们可能已更改了某些内容。

我最后一次确定此代码有效,是1月30日。

新用户创建时间戳和登录时间戳之间的毫秒数略有不同:

创建时间戳:1549462011000上次登录时间戳:1549462011028

我在两个不同的Firebase项目中尝试过,问题是相同的。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

我的应用遇到了同样的问题。 这两个时间戳现在相差几毫秒。 解决此问题的一种方法是检查两个时间戳是否足够接近(以下代码中的3秒)

val signUpInterval = 3000L 
val isNewUser = Math.abs(metadata.creationTimestamp - metadata.lastSignInTimestamp) < signUpInterval