如何将 Firebase 自定义身份验证生成的令牌从 Heroku 发送到我的客户端?

How do I send the Firebase Custom Authentication generated token from Heroku to my client?

我正在尝试在我的应用程序中为 Android 实施自定义身份验证。

我想要的表格只是一个 phone 号码。目前我正在这样做:

我面临的问题是我 运行 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. 如何获取我生成的令牌?

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

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

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

现在您可以在 Android 应用程序中使用自定义令牌通过 Firebase 进行身份验证。

希望这能解决问题。