如何将firebase身份验证与Google App引擎端点集成

ede*_*fed 17 google-app-engine android firebase firebase-authentication

我正在为移动应用程序编写后端服务器.后端在谷歌应用引擎上运行,用Java编写.

我希望用户能够使用Facebook等联合身份登录.

我看到谷歌通过firebase身份验证为移动应用程序支持这种身份验证.将firebase身份验证与我当前的应用引擎端点集成的最佳方法是什么?

我已经使用了云平台的数据存储区,并且不希望使用firebase数据库,只使用身份验证方法.

谢谢.

Mus*_*lan 6

我也在寻找答案.到目前为止,我最好的5c是

  • 使用FireBase从控制台设置登录方法等
  • 使用适用于Web的FireBase UI(测试版)或iOS/Android的"联合身份提供程序集成"来设置身份验证流程
  • 在Web/iOS/Android客户端上检索令牌/身份验证详细信息,并将其传递到您的Cloud端点,例如,HTTP请求标头
  • 将javax.servlet.http.HttpServletRequest注入到端点方法中(只需添加一个参数,Google就会自动注入请求对象)
  • 创建一个Endpoint将为每个请求(需要身份验证)调用的方法,该方法将处理您作为HTTP请求标头传递的凭据的验证
  • 使用FireBase Java SDK调用FireBase以验证凭据(为了执行此操作,您需要从Firebase控制台导出json配置)并使用它们加载SDK,例如,在您的一个servlet中:

@Override
    public void init(ServletConfig config) {
        try{
        InputStream in = config.getServletContext().getResourceAsStream("/WEB-INF/firebase-privatekey.json");
        FirebaseOptions options = new FirebaseOptions.Builder()
                .setServiceAccount(in)
                .setDatabaseUrl("YOUR_DATABASE_URL")
                .build();
        FirebaseApp.initializeApp(options);
        log.info("Authentication enabled");
        }
        catch(Throwable t) {
            t.printStackTrace();
            log.warning("AUTHENTICATION DISABLED. Only public resources will be available");
        }
    }
Run Code Online (Sandbox Code Playgroud)