0
我使用rest API构建Java服务器,并使用Firebase对我的用户进行身份验证。在Firebase中同步verifyIdToken java
当用户进行复位电话,他向火力地堡的令牌,我使用下一个方法验证:
FirebaseAuth.getInstance(firebaseApp).verifyIdToken(idToken)
.addOnSuccessListener(decodedToken -> {
// do some thing
});
的问题是,我们正在谈论HTTP调用,这些都不是同步的。虽然我找到了一种解决方法来使此方法同步,但如果有本地Firebase API为我提供了开箱即用的功能,我很好奇。
我的解决方法:
final Object hack = new Object();
synchronized (hack) {
FirebaseAuth.getInstance(firebaseApp).verifyIdToken(idToken)
.addOnCompleteListener(decodedToken -> {
// do some thing
synchronized (hack){
hack.notifyAll();
}
});
try {
hack.wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
有没有简单的方法来使异步同步。但这听起来像[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。异步处理程序不适用于您的用例的原因是什么? –
这里究竟是什么需要同步完成? –
@ cricket_007我收到来自客户端的请求,因为它是http,我需要同步返回响应。在我能做到这一点之前,我需要验证客户端令牌。所以我希望令牌验证是同步的 –