【问题标题】:Firebase Not Refreshing TokenFirebase 不刷新令牌
【发布时间】: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 登录正在发生这种情况。

【问题讨论】:

    标签: android firebase firebase-realtime-database firebase-authentication


    【解决方案1】:

    您检查过Firebase 文档吗?

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

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

    【讨论】:

    • 这是令牌刷新的唯一方式。该应用程序不会自行刷新。我的意思是我必须清除应用数据并重新登录才能刷新。
    • 每次登录都要刷新token?还是什么?
    • 数据库过了一会儿就停止更新了,好像是连接认证了。我只是希望它自己工作,我添加的上述代码是一个测试,表明它在被告知检索时不会获取任何内容。
    • 连接丢失时可能需要重新连接数据库?
    • 不,它甚至不应该失去连接。由于令牌刷新甚至没有完成,就好像它完全失去了连接一样。如果它没有得到令牌,它应该抛出异常......
    猜你喜欢
    • 2016-10-16
    • 2016-11-21
    • 2017-07-25
    • 2016-10-08
    • 2017-10-19
    • 2018-01-31
    • 1970-01-01
    • 2021-04-30
    • 2021-08-09
    相关资源
    最近更新 更多