我正在处理的Firebase项目已删除,并创建了一个新项目。现在,我需要使用新项目的凭据,这已经完成。我从Google云控制台生成了一个新的服务帐户密钥,并将旧的服务帐户密钥替换为新的服务帐户密钥。我也用新项目的URL替换了数据库(URL)。我用新项目更新了.firebaserc文件。仍然出现错误:
FIREBASE WARNING: Provided authentication credentials for the app named "[DEFAULT]" are invalid. This usually indicates your app was not initialized correctly. Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.
我使用新的服务帐户密钥更新了配置文件,更新了传递给firebase.initializeApp的道具,更新了.firebaserc文件,我是否还缺少其他东西?
我只有该项目的编辑者角色,并且使用Google Cloud生成了服务帐户密钥。我需要拥有者角色才能获得有效的服务帐户密钥吗?
{
"serviceAccount": {
"type": "service_account",
"project_id": "new-project",
"private_key_id": <SOME KEY>,
"private_key": "-----BEGIN PRIVATE KEY-----\nSOME-KEY",
"client_email": "new-project@new-project.iam.gserviceaccount.com",
"client_id": <SOME KEY>,
"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/new-project%40new-project.iam.gserviceaccount.com"
}
}
firebase.initializeApp({
credential: firebase.credential.cert(serviceAccount),
databaseURL: 'https://new-project.firebaseio.com',
});
{
"projects": {
"default": "new-project"
}
}
答案 0 :(得分:0)
您似乎正在使用JavaScript SDK(用于Web)与Admin / Node SDK(用于服务器端)。服务帐户用于服务器端身份验证。对于Web,您要使用Firebase身份验证。
答案 1 :(得分:0)
正确,您需要对项目具有所有者特权才能生成具有正确权限的服务帐户密钥。