验证服务器上的 Firebase 实例 ID

Verify Firebase Instance Id on Server

我有一个与 Firebase 集成的 android 应用程序。 我已按照 firebase 控制台上提到的说明进行集成。

我的应用需要在其 API 请求中将实例 ID 发送到后端。

我正在使用以下代码获取实例 ID

FirebaseInstanceId.getInstance().getInstanceId().addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
            @Override
            public void onComplete(@NonNull Task<InstanceIdResult> task) {
                if (!task.isSuccessful()) {
                    Log.e("QUICKFOX", "getInstanceId failed", task.getException());
                    return;
                }

                // Get new Instance ID token
                String token = task.getResult().getToken();
                Log.e("QUICKFOX",">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
                Log.e("QUICKFOX",token);
                Log.e("QUICKFOX",">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");

            }
        });

我正在使用该服务来验证实例 ID https://developers.google.com/instance-id/reference/server#get_information_about_app_instances

我不确定以下内容:

  1. 是授权:key=作为查询参数传递还是Header。 从这个例子来看,它似乎是作为查询参数传递的。但是 文档说它是 Header.
  2. 无论哪种方式(作为 Header 或作为查询参数),我都收到 401 Unauthorized 作为响应(响应类型似乎也是 text/HTML)
  3. 发送什么作为API KEY。我使用 webAPIKey 仍然得到 401。我在 google-services 中使用 api_key。json 仍然是相同的 401 错误。

谁能帮我解决这个问题。

我发现了问题。我真的不明白其中的区别,但这对我有用。 API 需要可以在此处找到的服务器密钥:

  1. 转到 firebase 控制台。
  2. 点击项目设置
  3. 单击服务帐户
  4. 单击其他服务帐户
  5. 这将打开 GCP 控制台。
  6. 点击左上角的汉堡菜单
  7. 单击API服务和服务
  8. 单击凭据
  9. 如下图所示找到服务器密钥并复制 钥匙。这是可用于验证实例的 API 密钥 ID 代币