我想从我的 fastify 服务器创建一个自定义令牌。
现在,我正在阅读以下非常糟糕的指南: https://firebase.google.com/docs/auth/admin/create-custom-tokens
他们有这个(我认为不完整)示例:
const uid = 'some-uid';
getAuth()
.createCustomToken(uid)
.then((customToken) => {
// Send token back to client
})
.catch((error) => {
console.log('Error creating custom token:', error);
});
我首先不明白的是 getAuth() 方法从何而来。官方文档中的解释为零。 我的猜测是它来自 firebase-admin。但是我不明白如何使用它。
与上述相关的第二个无意义的事情是当我在 firebase 控制台中创建一个项目时,我得到了以下内容:
// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
// TODO: Add SDKs for Firebase products that you want to use
// https://firebase.google.com/docs/web/setup#available-libraries
// Your web app's Firebase configuration
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
apiKey: "api_key",
authDomain: "xyz",
projectId: "xyz",
storageBucket: "xyz",
messagingSenderId: "000",
appId: "0xyz",
measurementId: "xyz0"
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
但是我不明白如何在 firebase-admin 中使用它。
即使我做了以下事情:
const admin = require('firebase-admin');
admin.initializeApp(firebaseConfig);
我收到消息:
错误信息:{ 代码:'身份验证/无效凭证', message: '无法确定服务帐户。确保使用服务帐户凭据初始化 SDK。或者 使用 iam.serviceAccounts.signBlob 指定服务帐户 允许。原始错误:错误:发出请求时出错: getaddrinfo ENOTFOUND 元数据。错误代码:ENOTFOUND' },
代码前缀:'auth'
任何帮助将不胜感激,因为由于 firebase 文档的不完整,我浪费了很多时间。