没有云功能的 Firebase 自定义声明
Firebase Custom Claims without Cloud Functions
有没有一种无需通过云函数即可创建自定义声明的方法?
我真的只需要为几个帐户设置它,我目前的计划是spark。我现在还不能升级。但是我需要测试这个特性来实现基于角色的身份验证。
谢谢,请尽可能详细,因为我是 firebase cli 的新手。
是的,如果您只需要设置一些用户,那么您可以 运行 在本地使用脚本来添加声明。只需按照以下步骤操作:
1.创建一个 NodeJS 项目
npm init -y
//Add Firebase Admin
npm install firebase-admin
2。将此代码写入 JS 文件 (addClaims.js):
const admin = require("firebase-admin")
admin.initializeApp({
credential: admin.credential.cert("./serviceAccountKey.json"),
databaseURL: "https://<project-id>.firebaseio.com/"
})
const uid = "user_uid"
return admin
.auth()
.setCustomUserClaims(uid, { admin: true })
.then(() => {
// The new custom claims will propagate to the user's ID token the
// next time a new one is issued.
console.log(`Admin claim added to ${uid}`)
});
3。 运行脚本
node addClaims.js
您还可以编写一个函数,将 UID 数组作为参数,并使用循环向所有 UID 添加声明。要阅读有关服务帐户和初始化 Admin SDK 的更多信息,请查看此 documentation。
有没有一种无需通过云函数即可创建自定义声明的方法?
我真的只需要为几个帐户设置它,我目前的计划是spark。我现在还不能升级。但是我需要测试这个特性来实现基于角色的身份验证。
谢谢,请尽可能详细,因为我是 firebase cli 的新手。
是的,如果您只需要设置一些用户,那么您可以 运行 在本地使用脚本来添加声明。只需按照以下步骤操作:
1.创建一个 NodeJS 项目
npm init -y
//Add Firebase Admin
npm install firebase-admin
2。将此代码写入 JS 文件 (addClaims.js):
const admin = require("firebase-admin")
admin.initializeApp({
credential: admin.credential.cert("./serviceAccountKey.json"),
databaseURL: "https://<project-id>.firebaseio.com/"
})
const uid = "user_uid"
return admin
.auth()
.setCustomUserClaims(uid, { admin: true })
.then(() => {
// The new custom claims will propagate to the user's ID token the
// next time a new one is issued.
console.log(`Admin claim added to ${uid}`)
});
3。 运行脚本
node addClaims.js
您还可以编写一个函数,将 UID 数组作为参数,并使用循环向所有 UID 添加声明。要阅读有关服务帐户和初始化 Admin SDK 的更多信息,请查看此 documentation。