如何将 Firebase 与 Spring Boot REST 应用程序一起使用? [英] How to use Firebase with Spring boot REST Application?

查看:33
本文介绍了如何将 Firebase 与 Spring Boot REST 应用程序一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆