【发布时间】:2018-03-12 07:02:49
【问题描述】:
我正在尝试通过 Node.js 后端将 Instagram OAuth 连接到 Firebase。我已成功检索到 Instagram 帐户数据,包括我想在我的 Node.js 后端与 firebase-admin 的 createCustomToken 交换的 access_token。我的目标是生成自定义令牌,以便我的 Angular 应用程序可以在我的 Firebase 应用程序中执行 signInWithCustomToken(token)。从 Instagram 检索数据没有问题,因为我可以在控制台上打印我的 JSON 对象。
当我想将我的access_token 交换为 Firebase 自定义令牌时出现问题。
我已从 Node.js 的 Firebase 管理页面关注 this guide,但我在下方遇到错误消息
throw new error_1.FirebaseAppError(error_1.AppErrorCodes.INVALID_APP_OPTIONS, "Invalid Firebase app options 作为第一个参数传递给 " +
错误:无效的 Firebase 应用选项作为名为“[DEFAULT]”的应用的 initializeApp() 的第一个参数传递。 “凭据”属性必须是实现凭据接口的对象。
这是我在相关问题上的代码。
// 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);
}
我的 Node 应用程序似乎无法初始化与 firebase-admin 的连接,但我不知道解决方案,因为我是这些技术的初学者。请指教。
【问题讨论】: