如何将Firebase与Spring Boot REST应用程序一起使用? [英] How to use Firebase with Spring boot REST Application?
本文介绍了如何将Firebase与Spring Boot REST应用程序一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个Spring Boot REST应用程序,它依赖于Firebase中完成的身份验证.
Firebase在客户端上生成一个令牌,借此在Spring Boot中,我需要验证UID
.
但是代码处于回调模式,那么如何实现该函数以使其能够完成任务?
@RequestMapping(value = "/api/restCall", method = RequestMethod.POST,
consumes = "application/json", produces = "application/json")
public Object restCall(@RequestBody Parameters requestBody) throws Exception {
String idToken = requestBody.getToken();
Task<FirebaseToken> task = FirebaseAuth.getInstance().verifyIdToken(idToken)
.addOnSuccessListener(new OnSuccessListener<FirebaseToken>() {
@Override
public void onSuccess(FirebaseToken decodedToken) {
String uid = decodedToken.getUid();
}
});
return "???"; // what return here?
}
如何在onSuccess
之后返回? DeferredResult
?
解决方案
这是我自己尝试回答自己的问题
@RequestMapping(value = "/api/restCall", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
public Object restCall(@RequestBody Parameters requestBody,@RequestHeader(value = FIREBASETOKEN, required = true) String idToken) throws Exception {
// idToken comes from the HTTP Header
FirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdTokenAsync(idToken).get();
final String uid = decodedToken.getUid();
// process the code here
// once it is done
return object;
}
您也可以尝试下面的代码
FirebaseAuth.getInstance().deleteUser(uid);
System.out.println("Successfully deleted user.");
Here is my own attempt to answer my own question
@RequestMapping(value = "/api/restCall", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
public Object restCall(@RequestBody Parameters requestBody,@RequestHeader(value = FIREBASETOKEN, required = true) String idToken) throws Exception {
// idToken comes from the HTTP Header
FirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdTokenAsync(idToken).get();
final String uid = decodedToken.getUid();
// process the code here
// once it is done
return object;
}
You can try below code as well
FirebaseAuth.getInstance().deleteUser(uid);
System.out.println("Successfully deleted user.");
for More deetails URL https://firebase.google.com/docs/auth/admin/manage-users
这篇关于如何将Firebase与Spring Boot REST应用程序一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文