我正在尝试通过私钥和管理员权限使用管理员权限访问 Firestore,以便我可以将其用于后端的查询和内容。
//i import fb-admin
const firebaseAdmin = require('firebase-admin')
//i initialize as admin with a valid credential
firebaseAdmin.initializeApp({
credential: firebaseAdmin.credential.cert('./pathto/myprivatekeyinfo.json')
})
//i initialize firestore
var dba = firebaseAdmin.firestore()
//i test the connection by listing all the available collections
dba.getCollections().then(collectionList => {
collectionList.forEach(collection => {
console.log(collection.id) //print available collections
}
},error => console.error(JSON.stringify(error,null," "))) //print error
它看起来与文档中的说明完全一样,但我的问题是,对于我尝试在其中执行 Node 的某些计算机,我只能在少数计算机上随机连接。
有时我连接并且一切正常,按应有的方式打印可用的集合,但大多数时候我得到的只是无效凭据的错误
{
"code": 16,
"metadata": {
"_internal_repr": {
"www-authenticate": [
"Bearer realm=\"https://accounts.google.com/\""
]
}
},
"details": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"note": "Exception occurred in retry method that was not classified as transient"
}
我尝试过不做任何更改,有时它可以在某些计算机上运行,在这些计算机上我测试完全相同的代码,但在其他计算机上则不然,并且尝试通过 firebase 控制台获取新的私钥不会改变任何事情。当我尝试连接时,有时需要很长时间才能收到此错误,或者根本不回调。提供的链接也没有帮助,因为它只提供了一些 JS 代码,用于通过前端进行常规访问以使用 google 登录,这根本不是我在这种情况下的用例(我已经尝试过“配置项目”按钮)。
我在这里做错了什么吗?为什么有时它可以工作,尽管没有任何改变,但有时却不起作用?
我很感激任何帮助