验证查询参数不起作用的FireBase Rest

验证查询参数不起作用的FireBase Rest,rest,firebase,firebase-realtime-database,firebase-authentication,Rest,Firebase,Firebase Realtime Database,Firebase Authentication,我做错了什么? 自定义令牌与rest api不兼容。 我是否需要使用,如果需要,如何在其中添加附加索赔 附言: 我正在使用的firebase sdk版本 com.google.firebase firebase服务器sdk 3.0.1 编辑:FIREBASE文档中存在不一致 FIREBASE文档说 该参数可以是Firebase应用程序的机密,也可以是 身份验证令牌,如“Firebase项目中的用户”中所述 所描述的身份验证类型为 注意:这里有自定义令牌 FIREBASE文档说 该参数可以

我做错了什么?

自定义令牌与rest api不兼容。 我是否需要使用,如果需要,如何在其中添加附加索赔

附言: 我正在使用的firebase sdk版本

com.google.firebase firebase服务器sdk 3.0.1

编辑:FIREBASE文档中存在不一致


FIREBASE文档说

该参数可以是Firebase应用程序的机密,也可以是 身份验证令牌,如“Firebase项目中的用户”中所述

所描述的身份验证类型为
注意:这里有自定义令牌


FIREBASE文档说

该参数可以是Firebase应用程序的机密,也可以是 身份验证令牌。见 详情请参阅


因此,指南和参考书的谈话方式不同


需要firebase支持团队的帮助吗

是,使用创建自定义令牌 FirebaseAuth.getInstance().createCustomToken(uid,附加声明) 不适用于REST API。这些代币设计用于 具有signInWithCustomToken(令牌)的客户端SDK。请注意 由于以下原因,目前不支持“客户端到数据库”REST请求 新Firebase(旧Firebase)中安全模型的更改 支持它)

正如您所指出的,您需要遵循此链接以便 经过身份验证的REST请求。您应该使用access_令牌 参数,传递从服务帐户派生的令牌 钥匙这假设您使用的场景是“服务器到数据库”,因为您使用的是 服务帐户

要使用REST添加自定义声明,应使用 验证变量覆盖参数。看这里。你的要求现在就应该解决了 添加声明后,如下所示: {“uid”:“6LiF16Dm0hNB9XO61UR1KM5Jeun2”}

$curl “&auth_variable_override=%7B%22uid%22%3A%226LiF16Dm0hNB9XO61UR1KM5Jeun2%22%7D” {“1213314”:{“alanisawesome”:“Alan Turing”}

我理解您指出的文件需要 需要改进,并已将其提交给我们的文档团队,以便 可以适当地划分优先级。不过,我不能分享任何东西 截至目前的时间线

希望这有帮助。请随时对任何其他问题或顾虑作出回应

   // INIT FIREBASE
    FirebaseOptions options = new FirebaseOptions.Builder()
          .setServiceAccount(new FileInputStream("C:\\path\\testcustom-dff2147d3b14.json"))
          .setDatabaseUrl("https://testcustom-a1a4d.firebaseio.com/")
          .build();
        FirebaseApp.initializeApp(options);
        isFireBaseInit = true;

       // GENERATE TOKEN
        String uid = "USER ID SOME RANDOM";
        HashMap<String, Object> additionalClaims = new HashMap<String, Object>();
        String token = FirebaseAuth.getInstance().createCustomToken(uid, additionalClaims);
{
  "error" : "Missing claim 'kid' in auth header."
}