0

我想在我的应用程序中为Android实现自定义身份验证。如何将Firebase自定义身份验证生成的令牌从Heroku发送到我的客户端?

我想要的表格只是一个电话号码。目前我这样做:

  • 我有一个应用程序在IntelliJ中使用heroku生成自定义标记。
  • 我将该应用程序部署到Heroku。

我现在面临的问题是,我上午运行在Heroku上的Java应用程序。然而,所有我现在的问题是:

String uid = "some-uid"; 
HashMap<String, Object> additionalClaims = new HashMap<String, Object>(); 
additionalClaims.put("premiumAccount", true); 

FirebaseAuth.getInstance().createCustomToken(uid, additionalClaims) 
    .addOnSuccessListener(new OnSuccessListener<String>() { 
     @Override 
     public void onSuccess(String customToken) { 
      // Send token back to client 
     } 
    }); 

什么我困惑:

  1. 我如何从Android客户端在运行的Heroku的服务器进行通信?
  2. 如何获得我生成的令牌?

回答

1

您需要查看诸如Spark之类的网络框架才能接收来自您的Android应用的请求并将回复发送回您的Android应用。在您的Android设备上,您将向Heroku实例发送HTTP请求(将在某个URL中),您将使用在Heroku中运行的Spark来接收请求,您将使用Firebase Admin为自定义令牌创建一个令牌,然后您可以将自定义令牌作为Spark响应发送回您的Android设备。

2

通常,您在自己处理用户身份验证时创建自定义令牌。然后,我们可以设想以下的信息流:

  1. Android应用程序发送用户凭据(如用户名和密码),以在Heroku的后台服务器。
  2. 后端服务器对用户进行身份验证,并创建一个自定义令牌(您目前拥有的代码)。
  3. 将自定义标记作为认证响应发送回Android应用程序。

现在,您可以在Android应用中使用自定义标记对Firebase进行身份验证。

希望这可以解决问题。