我在Firebase Auth UI用户元数据方面遇到问题

我在Firebase Auth UI用户元数据方面遇到问题,firebase,Firebase,我正在使用Firebase Auth UI在我的应用程序中注册和存储用户 当用户是应用程序中的新用户时,我需要注册一些东西,因此我需要知道用户何时是新用户或非新用户 根据文档,我正在使用正确的方法检查新用户: 我检查用户是否是新用户的方法是比较元数据、用户创建时间戳和上次签名的时间戳,结果非常完美 if (metadata.getCreationTimestamp() == metadata.getLastSignInTimestamp()){ //do some new user stu

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

当用户是应用程序中的新用户时,我需要注册一些东西,因此我需要知道用户何时是新用户或非新用户

根据文档,我正在使用正确的方法检查新用户:

我检查用户是否是新用户的方法是比较元数据、用户创建时间戳和上次签名的时间戳,结果非常完美

if (metadata.getCreationTimestamp() == metadata.getLastSignInTimestamp()){
  //do some new user stuff
}else{
 //log in old user
}
此代码现在不起作用,因为他们可能已经更改了某些内容

我最后一次确定这条代码有效是在1月30日

当用户是新用户时,创建时间戳和登录时间戳之间的毫秒差异很小:

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

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


有人能帮忙吗?

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

val注册间隔=3000L
val isNewUser=Math.abs(metadata.creationTimestamp-metadata.lastSigningItemStamp)
是的,谢谢,它很有效。但是,我想他们必须修复这个错误。
val signUpInterval = 3000L 
val isNewUser = Math.abs(metadata.creationTimestamp - metadata.lastSignInTimestamp) < signUpInterval