У меня проблема, когда я пытаюсь использовать промежуточное ПО в базе данных
это мое промежуточное ПО (FBauth)
const db = admin.firestore();
const FBAuth = (_req,_res,next) => {
let idToken;
if(_req.headers.authorization && _req.headers.authorization.startsWith('Bearer ')){
idToken = _req.headers.authorization.split ('Bearer ')[1];
console.log('ID TOKEN ------------>', idToken);
}else{
console.error('Nessun Token trovato')
return _res.status(403).json({ error: 'non-autorizzato'});
}
admin.auth().verifyIdToken(idToken)
.then(decodedToken => {
_req.user = decodedToken;
console.log(decodedToken);
return db.collection('users')
.where('userId', '==', _req.user.uid)
.limit(1)
.get();
})
.then(data=>{
console.log('****** reading data ******', data);
_req.user.handle = data.doc[0].data().handle;
return next();
})
.catch(err => {
console.error('********error while verifying token*********', err);
return _res.status(403).json({error: `${err}`});
}
);
};
Когда я пытаюсь проверить токен I ' у меня есть эта ошибка
Error: Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information
Я думаю, что мой код правильно bootstrap
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const app = require('express')();
admin.initializeApp();
const firebaseConfig = {
apiKey: "**************",
authDomain: "***************",
databaseURL: "***************",
projectId: "***************",
storageBucket: "***************",
messagingSenderId: "***************",
appId: "***************",
measurementId: "***************"
};
const firebase = require('firebase');
firebase.initializeApp(firebaseConfig);
возможно коррелируется с этим ПРОБЛЕМ ----> https://github.com/firebase/firebase-admin-node/issues/738? Как я могу решить?
PS:
мои зависимости эти
"dependencies": {
"express": "^4.17.1",
"firebase": "^7.13.2",
"firebase-admin": "^8.9.0",
"firebase-functions": "^3.3.0"
},