J'essaie de connecter Instagram OAuth à Firebase via Node.js back-end. J'ai réussi à récupérer des données de compte Instagram, y compris access_token
que je veux échanger avec firebase-admin
createCustomToken
sur mon backend Node.js. Mon objectif ici est de générer un jeton personnalisé afin que mon application Angular puisse faire signInWithCustomToken(token)
dans mon application Firebase. Il n'y a aucun problème à récupérer des données d'Instagram car je peux imprimer mon objet JSON sur la console.Firebase Admin INVALID_APP_OPTIONS erreur à initializeApp()
Le problème est survenu lorsque je souhaite échanger mon access_token
vers un jeton personnalisé Firebase.
J'ai suivi this guide de la page Firebase Admin Node.js et je suis face à un message d'erreur ci-dessous
throw new error_1.FirebaseAppError(error_1.AppErrorCodes.INVALID_APP_OPTIONS, "Invalid Firebase app options passed as the first argument to initializeApp() for the " +
Error: Invalid Firebase app options passed as the first argument to initializeApp() for the app named "[DEFAULT]". The "credential" property must be an object which implements the Credential interface.
Voici mon code sur question connexe.
// authService.js
var fbAdmin = require('firebase-admin');
var serviceAccount = require('./key/key.json');
function createFirebaseToken(instagramID) {
// I copy & pasted this var from other class
var config = {
apiKey: "MY_FIREBASE_APIKEY",
authDomain: "MY_APP.firebaseapp.com",
databaseURL: "https://MY_APP.firebaseio.com",
storageBucket: "MY_APP.appspot.com",
};
console.log(fbAdmin.credential.cert(serviceAccount)); // serviceAccount successfully printed on console
// Error appears when executing this function
fbAdmin.initializeApp({
serviceAccount: fbAdmin.credential.cert(serviceAccount),
databaseURL: config.databaseURL
});
const uid = `instagram:${instagramID}`;
// Create the custom token.
console.log(uid);
return fbAdmin.auth().createCustomToken(uid);
}
Il semble que mon application nœud ne peut pas initialiser une connexion à firebase-admin
mais je ne sais pas la solution que je suis un débutant sur ces technologies. Veuillez nous conseiller