当前位置: 首页 > 面试题库 >

如何将Firebase与Spring Boot REST应用程序一起使用?

邴烨
2023-03-14
问题内容

我有一个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?
}

之后如何返回onSuccessDeferredResult


问题答案:

这是我自己尝试回答我自己的问题

@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.");

获取更多详细信息URL
https://firebase.google.com/docs/auth/admin/manage-
users



 类似资料:
  • 问题内容: 我正在尝试在我的watchKit应用中使用firebase数据库。我已经在我的iPhone应用程序上开发了此功能,但是发现在我的Watch应用程序上很难做到这一点。当我尝试将firebase导入watch应用程序的VC类中时,它正在创建error 。 可以在Watch app中使用Firebase吗? 问题答案: 可悲的是,没有支持,并由于这样的事实,有没有支持在这些版本中,并高度依赖

  • 问题内容: 如何在RoR中使用CSS?当我从外部链接时,我永远看不到文件。我将.css文件cp到我能想到的每个文件夹…视图,控制器,模板,似乎没有任何作用。 要使用Rails应用程序启用外部CSS文件,我需要做什么?我是Rails的新手,如果这是基本知识,请原谅我。 问题答案: 将CSS文件放在public / stylesheets中,然后使用: 链接到布局中的样式表或视图中的erb文件。 同样

  • 我正在尝试让一个简单的HTTP控制台应用程序作为Azure服务应用程序运行。它所做的只是在连接时返回OK。它在我的笔记本电脑上运行良好,我可以使用VS2019发布到Azure ok。问题是用于监听的前缀。 在我的笔记本电脑上,我可以使用超文本传输协议://: 80/; https://: 443/,但在Azure中,我得到一个错误:[例外]访问被拒绝。 本文https://github.com/p

  • 所以我导入PromiseKit,然后尝试 显然,这是行不通的,我想知道,如果可能的话,我还缺少什么可以让Firebase的promise发挥作用。我试图实现的是用一个catch方法一次性删除四个Firebase引用。 使用nodeJs,我可以轻松使用: 有没有办法在Swift中实现这一点?

  • 我的应用程序是用Flatter和Firebase RTDB(数据库1)开发的。它是为IOS和Android构建的。 我有一个使用JS和Firebase RTDB(数据库2)开发的辅助应用程序。它是为Web创建的。 现在,我想从我的Flatter应用程序中写入数据库2。我应该一步一步地做什么? 我尝试使用以下方法应用添加多个项目: 但我不确定这是否是一个安全的过程,我不知道如何调用辅助数据库实例..

  • 问题内容: 我正在使用我的应用程序对用户进行身份验证。我已经创建了和表单,并且可以成功创建新用户并使用存储的用户登录。但是,问题出在维护用户之后,保持用户登录状态。 我在教程中看到的方式是使用类似以下内容的命令检查当前用户是否已登录。 但是,我希望使用新版 本来消除对的需要。我已经 通过使用和访问的单个实例删除了。有没有使用新的方式来模拟这个 范围内,我创造? 我正在使用本教程 https://w