【发布时间】:2016-12-31 05:31:57
【问题描述】:
// 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);
如果我尝试使用 rest api 来获取数据,则不是来自浏览器
我收到以下错误:
{
"error" : "Missing claim 'kid' in auth header."
}
我做错了什么?
自定义令牌是否不适用于 rest api。 我是否需要使用firebase link,如果需要如何在其中添加额外的声明?
PS: 我正在使用的 firebase sdk 版本
com.google.firebase firebase-server-sdk 3.0.1
编辑:Firebase 文档存在不一致
FIREBASE GUIDE 文档说
参数可以是您的 Firebase 应用的密钥,也可以是 身份验证令牌,如“Firebase 项目中的用户”中所述
描述的身份验证类型是https://firebase.google.com/docs/auth/users#auth_tokens
注意:那里存在自定义令牌
FIREBASE REFERENCE 文档说
参数可以是您的 Firebase 应用的密钥,也可以是 身份验证令牌。见REST authentication documentation 了解详情。
所以指南和参考的说法不同。
需要帮助
【问题讨论】:
标签: rest firebase firebase-realtime-database firebase-authentication