Snažím sa nasledovať príklad uvedený tu , kde sa to ukazuje nasledujúci príklad na overenie ID kupón:
// idToken comes from the client app
getAuth()
.verifyIdToken(idToken)
.then((decodedToken) => {
const uid = decodedToken.uid;
// ...
})
.catch((error) => {
// Handle error
});
Môj kód vyzerá takto:
function createFirebaseAdminApp(config: AppOptions) {
if (getApps().length === 0) {
return initializeApp(config);
} else {
return getApp();
}
}
const options: AppOptions = {
credential: cert({
projectId: process.env.FIREBASE_PROJECT_ID,
clientEmail: process.env.FIREBASE_CLIENT_EMAIL,
privateKey:
process.env.FIREBASE_PRIVATE_KEY != undefined
? process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g, "\n")
: "",
}),
databaseURL: process.env.FIREBASE_DATABASE_URL,
};
const firebaseAdmin = createFirebaseAdminApp(options) as FirebaseApp;
const adminAuth = getAuth(firebaseAdmin);
adminAuth
.verifyIdToken(token)
.then((decodedToken) => {
res.locals.decodedToken = decodedToken;
next();
})
.catch(() => {
next(new HttpError("Invalid token provided", 403));
});
Ale ja si stále
Majetok "verifyIdToken' neexistuje na typ "Auth'
Mám najnovšiu verziu firebase balík, ktorý som predpokladajme príklad dané dokumenty je pomocou zvažuje, že používa getAuth
,, takže nemôžem povedať, čo robím zle. Tiež sa snažím, aby nedošlo k zámene firebase-admin a firebase, nie je istý, či je to správne, ale ak by som zmiešané ich ja nedokážem vyhnúť sa inicializovať príliš App prípadoch.
Vďaka za každú pomoc!