Firebase 不刷新令牌

Posted

技术标签:

【中文标题】Firebase 不刷新令牌【英文标题】:Firebase Not Refreshing Token 【发布时间】:2017-06-30 17:30:37 【问题描述】:

我在我的 android 应用程序中使用 Google 和 Facebook 登录。我发现this thread 也在谈论一段时间后失去与 Firebase 数据库的连接,这种情况一直在发生。我运行了以下代码和“完成的刷新令牌”。永远不会被打印出来。

Log.d(TAG, "Start token refresh.");
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); // mAuth is your current firebase auth instance
user.getToken(true).addOnCompleteListener(this, new OnCompleteListener<GetTokenResult>() 
    @Override
    public void onComplete(@NonNull Task<GetTokenResult> task) 
        Log.d(TAG, "Completed refresh token.");
        if (task.isSuccessful()) 
            Log.d(TAG, "token=" + task.getResult().getToken());
         else 
            Log.e(TAG, "exception=" +task.getException().toString());
        
    
);

要让它工作,我必须清除我的应用程序中的数据并重新登录,以便它再次工作一会儿。当我简单地退出帐户并重新登录时,它通常不起作用。尚未尝试使用 Facebook,但现在使用 Google 登录正在发生这种情况。

【问题讨论】:

【参考方案1】:

您检查过Firebase 文档吗?

注册令牌可能会在以下情况下发生变化:

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

【讨论】:

这是令牌刷新的唯一方式。该应用程序不会自行刷新。我的意思是我必须清除应用数据并重新登录才能刷新。 每次登录都要刷新token?还是什么? 数据库过了一会儿就停止更新了,好像是连接认证了。我只是希望它自己工作,我添加的上述代码是一个测试,表明它在被告知检索时不会获取任何内容。 连接丢失时可能需要重新连接数据库? 不,它甚至不应该失去连接。由于令牌刷新甚至没有完成,就好像它完全失去了连接一样。如果它没有得到令牌,它应该抛出异常......

以上是关于Firebase 不刷新令牌的主要内容,如果未能解决你的问题,请参考以下文章

firebase 访问令牌是不是会自动刷新?

如何使用 Firebase 刷新令牌保持用户身份验证?

如果有人窃取了您的 Firebase 身份验证刷新令牌,会发生啥情况?

如何在 Flutter 上刷新 firebase 令牌?

使用刷新令牌对Firebase管理员进行身份验证

ios设备上的Firebase InstanceID令牌刷新延迟