没有云功能的 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