如何将 Firebase 与 Spring Boot REST 应用程序一起使用? [英] How to use Firebase with Spring boot REST Application?
问题描述
我有一个 Spring Boot REST 应用程序,它依赖于在 Firebase 中完成的身份验证.
在客户端 Firebase 生成一个令牌,借此在 Spring Boot 中,我需要验证 UID
.
但是代码是回调模式,那么如何实现函数才能完成任务呢?
@RequestMapping(value = "/api/restCall", method = RequestMethod.POST,消费 = 应用程序/json",产生 = 应用程序/json")公共对象 restCall(@RequestBody 参数 requestBody) 抛出异常 {String idToken = requestBody.getToken();任务task = FirebaseAuth.getInstance().verifyIdToken(idToken).addOnSuccessListener(new OnSuccessListener() {@覆盖public void onSuccess(FirebaseToken decodedToken) {String uid = decodedToken.getUid();}});返回???";//这里返回什么?}
onSuccess
后如何返回?DeferredResult
?
这是我自己的尝试来回答我自己的问题
@RequestMapping(value = "/api/restCall", method = RequestMethod.POST,consumes = "application/json", products = "application/json")public Object restCall(@RequestBody 参数 requestBody,@RequestHeader(value = FIREBASETOKEN, required = true) String idToken) 抛出异常 {//idToken 来自 HTTP HeaderFirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdTokenAsync(idToken).get();最终字符串 uid = decodedToken.getUid();//处理这里的代码//一旦完成返回对象;}
你也可以试试下面的代码
FirebaseAuth.getInstance().deleteUser(uid);System.out.println("用户删除成功.");
了解更多详情URL https://firebase.google.com/docs/auth/admin/manage-users>
I have a Spring Boot REST application that depends on the authentication done in Firebase.
On the client side Firebase generates a token whereby in the Spring Boot, I need to verify the UID
.
But the code is in a callback mode, so how do I implement the function so that it can finish the task?
@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?
}
How do I return after onSuccess
? DeferredResult
?
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屋!