我想實現從服務器端使用火力地堡管理員SDK(JAVA)的驗證令牌標識,但我得到的錯誤:火力地堡:無法解析服務帳戶:「PROJECT_ID」必須設置
無法解析服務帳戶:「PROJECT_ID」
我產生我在以下路徑憑據從火力點必須設置:
項目設置 - >服務帳戶,並生成一個新的私鑰和我有這樣的:
{
"type": "service_account",
"project_id": "apilogintest-9c5f5",
"private_key_id": "<privateKeyId...>",
"private_key": "-----BEGIN PRIVATE KEY-----\n<a really big private Key>\n-----END PRIVATE KEY-----\n",
"client_email": "<clientEmail>",
"client_id": "<clientId>",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-hhay...."
}
也是我加載JSON文件的方式它了一樣的火力網頁:
對Maven:
用java加載我的JSON文件:
FileInputStream serviceAccount = new FileInputStream("path/to/serviceAccountKey.json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
.setDatabaseUrl("https://apilogintest-9c5f5.firebaseio.com/")
.build();
FirebaseApp initializeApp = FirebaseApp.initializeApp(options);
,當我試圖驗證令牌ID的最後一部分:
FirebaseAuth.getInstance(initializeApp).verifyIdToken(token)
.addOnSuccessListener(new OnSuccessListener<FirebaseToken>() {
@Override
public void onSuccess(FirebaseToken decodedToken) {
String uid = decodedToken.getUid();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
e.printStackTrace();
}
});
我認爲我做了同樣的火力網頁提到,但我得到上述錯誤
有人可以幫助我嗎?
我將不勝感激您的幫助。
您使用的是什麼版本的Admin Java SDK?你可以在最新的4.1.5版本上重現這一點嗎? – jwngr
另外,你確定''path/to/serviceAccountKey.json''路徑實際上是你的JSON文件的正確路徑嗎?你可能引用了一個不存在的文件。 – jwngr
你好,是我使用最新版本的firebase管理4.1.5和是我的文件的路徑對應於我的java路徑,所以我只指定我的文件的名稱,事實上在加載文件後,我打印它在控制檯,它就像json文件。 –