Firebase 身份验证:如何验证用户仍然存在

Posted

技术标签:

【中文标题】Firebase 身份验证:如何验证用户仍然存在【英文标题】:Firebase Authentication: how to verify user still exists 【发布时间】:2018-01-11 03:59:31 【问题描述】:

我正在使用 Firebase 匿名身份验证。

如果用户已从 Firebase 控制台中删除,客户端仍然认为该用户存在,因为它仍然持有令牌。

每次启动应用程序时,我都想验证用户是否仍然存在。我发现我可以使用FirebaseUser.reload() 函数。

文档说,如果用户的帐户被禁用或删除,FirebaseAuthInvalidUserException 将被抛出: https://firebase.google.com/docs/reference/android/com/google/firebase/auth/FirebaseUser.html#reload()

但是,这是一个异步函数,我正在努力寻找如何捕获此异常。任何人都可以向我展示如何捕获此异常的代码示例吗? 我查看了所有文档,但没有找到关于此的示例。

【问题讨论】:

数据库中有用户数据? @BrunoFerreira 没关系。我只想抓住那个异常。 你能添加你的 firebaseUser.reload() 方法吗? 关键是我想捕捉那个异常,但我不知道如何在异步函数中做到这一点。谁能告诉我怎么做? 【参考方案1】:

试试这个:

mFirebaseUser.reload().addOnFailureListener(new OnFailureListener() 
    @Override
    public void onFailure(@NonNull Exception e) 
        if (e instanceof FirebaseAuthInvalidUserException) 
            Log.d(TheApp.LOG_TAG, "user doesn't exist anymore");
            createUser();
        
    
);

【讨论】:

非常感谢,它可以通过使用addOnFailureListener

以上是关于Firebase 身份验证:如何验证用户仍然存在的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JWT for Google firebase 生成身份验证令牌?

如果firebase没有身份验证,如何限制API密钥?

如何在没有身份验证的情况下添加 Firebase 数据库规则?

Firebase 身份验证会话未过期 [重复]

Firebase 身份验证 Flutter 中的电话号码

Firebase - 一小时后丢失身份验证会话