在Google App Engine验证Firebase令牌。

3
我正在Google App Engine开发一个应用程序。我使用Cloud Endpoints来实现Android应用程序和后端之间的通信。Android客户端使用Firebase身份验证,并在每个调用中将Firebase令牌发送到Cloud Endpoints。

在Google App Engine上,我使用以下代码来验证Firebase令牌。我使用Firebase Admin SDK 4.0.3

Task<FirebaseToken> authTask = FirebaseAuth.getInstance().verifyIdToken(token);

try {
    Tasks.await(authTask);
} catch (ExecutionException | InterruptedException e ) {
    log.severe(e.getMessage());
}
FirebaseToken decodedToken = authTask.getResult();

任务的执行正在 Google App Engine 后端任务上运行,但不幸的是,这个后端实例没有关闭,因此我超出了免费配额限制。所以,有人能给我一个提示,我如何在令牌验证后关闭后端实例?


1
这是Firebase Admin Java SDK已知的问题,实际上对我们来说是一个难以修复的错误。目前唯一的解决方法是使用更高版本的SDK(>= 4.0.4),该版本支持在前端实例中使用此方法(在处理后正常关闭)。 - jwngr
谢谢,这对我真的很有用。但是我尝试了第一个版本4.1.0,在我的本地开发服务器上失败了。调用 Task.await(authTask) 从未返回过,但是在版本4.0.4中它可以工作。所以现在我只能使用前端实例了。 - Michael Meyer
哎呀,是的,看起来我们在 verifyIdToken() 的 4.1.0 版本中有一个 bug。对此我们感到非常抱歉!我们会尽快修复它。在此期间,4.0.4 版本应该可以正常工作。 - jwngr
1个回答

1
这是 Firebase Admin Java SDK 已知的问题,实际上对我们来说是一个难以修复的 bug。目前唯一的解决方法是使用更新版本的 SDK(>= 4.0.4),该版本支持在前端实例中使用此方法(在处理完后正常关闭)。
不幸的是,在另一个问题中,4.1.0 版本由于错误的依赖关系导致 verifyIdToken() 方法失效。因此,您必须使用 4.0.4 或 >= 4.1.1
很抱歉给您带来了所有的麻烦!我们会尽快修复 verifyIdToken() 方法。同时,版本 4.0.4 应该适合您使用。
更新: verifyIdToken() 方法的第二个较小问题已经在 Admin Java SDK 版本 4.1.1 中得到解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接