gpt4 book ai didi

java - FirebaseUser 实例不为 null。即使清除数据后,它是否会检索同一设备上的第一个注册用户?

转载 作者:行者123 更新时间:2023-12-02 09:54:33 28 4
gpt4 key购买 nike

我有以下使用一台物理设备的情况:

  1. 用户使用 (123)-456-7890 电话号码进行身份验证并登录应用。用户在 Firebase 身份验证中创建了“用户 UID”。

  2. 现在我进入应用程序信息-->清除数据。使用相同的(123)-456-7890电话号码,我确实有方法:

    private boolean isUserNewUser(Task<AuthResult> task) {
    return task.getResult() != null && task.getResult().getAdditionalUserInfo().isNewUser();
    }

    检查用户是否是新用户。由于是相同的电话号码,第二个用户将无法在 Firebase 身份验证中创建新的用户 UID,因此无法进行身份验证。

  3. 现在,我关闭应用程序,再次启动它,并且我在第一个启动器 Activity 中设置了一个被触发的方法,并且用户实例不为空。

    mAuthListener = firebaseAuth -> {
    FirebaseUser user = firebaseAuth.getCurrentUser();
    if (user != null) {
    //User is signed in
    ActivitiesHelper.intentActivityLauncher(this,
    HomeActivity.class, Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid());
    } else {
    //User is signed out
    Log.d(TAG, "onAuthStateChanged:signed_out");
    }
    };

问题:回调怎么可能返回 FirebaseUser 的非 null 实例?

最佳答案

。根据 FirebaseInstanceId 文档,实例 ID 是稳定的,除非:

  • 应用删除实例 ID
  • 应用已在新设备上恢复
  • 用户卸载/重新安装应用
  • 用户清除应用数据

但是,每次清除数据后启动应用时,都会通过 FirebaseInstanceIdService onTokenRefreshed() 回调返回不同的 token 。

这是服务的正常行为。

我建议你去there并阅读有关创建自定义 token 的信息

关于java - FirebaseUser 实例不为 null。即使清除数据后,它是否会检索同一设备上的第一个注册用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56095162/

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