gpt4 book ai didi

java - FirebaseUI-无法识别新用户

转载 作者:行者123 更新时间:2023-12-01 16:13:19 27 4
gpt4 key购买 nike

我有一个 Android 应用,使用 Firebase AuthUI 来登录用户。我仅使用电话身份验证。如果新用户登录,我希望他被定向到配置文件创建 Activity ,如果他是老用户,我希望他被定向到主页 Activity 。但是,当我使用新的测试号码时,我会被定向到主页而不是个人资料 Activity 。我尝试过使用多个号码,它适用于某些号码,但不适用于其他号码(登录成功,但检测为旧用户)。要检查新/旧用户,我使用以下代码:

if (user.getMetadata().getCreationTimestamp() == user.getMetadata().getLastSignInTimestamp()) {
//This is a New User
//Move to Profile Creation Activity
Toast.makeText(this, "new user", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onActivityResult: creationTimestamp "+user.getMetadata().getCreationTimestamp());
Log.d(TAG, "onActivityResult: lastsignin"+user.getMetadata().getLastSignInTimestamp());
Intent loginIntent = new Intent(this, ProfileActivity.class);
startActivity(loginIntent);
this.finish();
} else {
//This is a returning user
Toast.makeText(this, "old", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onActivityResult: creationTimestamp "+user.getMetadata().getCreationTimestamp());
Log.d(TAG, "onActivityResult: lastsignin "+user.getMetadata().getLastSignInTimestamp());
Intent intent = new Intent(this, HomeActivity.class);
startActivity(intent);
this.finish();


}

我已手动将测试编号添加到 Firebase 控制台。我还反复删除用手机号码注册的帐户,以便我可以重复使用我的测试号码。我不知道这是否导致了问题。我还尝试记录创建和上次登录时间戳。每当新用户被错误识别为老用户时,创建时间戳和最后登录时间戳相差1。

这是带有时间戳的 logcat:

2020-06-19 21:22:37.553 32080-32080/com.example.XX D/LoginRegisterActivity: onActivityResult: creationTimestamp 1592581957752
2020-06-19 21:22:37.553 32080-32080/com.example.XX D/LoginRegisterActivity: onActivityResult: lastsignin 1592581957753

请提出建议

编辑 1:我观察到一件事,如果我从控制台删除了测试号码以及相应的用户,然后再次在控制台中添加相同的测试号码,我会被识别为老用户。测试号码删除后还会保存吗?因为当我将测试号码更改为完全随机的新号码然后尝试注册时,我被正确识别为新用户

编辑2:刚刚在控制台中添加了一个完全随机的测试号码,现在尝试注册用户。我被带回家而不是进行个人资料 Activity 。这是一个错误吗?在我添加这个数字之前,我的代码工作正常

尝试替代解决方案:我现在按照某人的建议在 firestore 中查询 userID。如果 userID 存在,我会将其视为旧用户并将该用户发送到 Home。我想问一下每个电话号码的userID都是唯一的吗?基本上每个phoneNo对应一个用户?

最佳答案

您不需要做所有这些事情,您只需使用,

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
// User is signed in
} else {
// No user is signed in
}

从下面的链接查看官方文档。

doc

关于java - FirebaseUI-无法识别新用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62474289/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com