You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Firebase Auth用户的所有自定义声明?

获取Firebase Auth用户的所有自定义声明

可以通过Firebase Admin SDK获取用户的全部自定义声明,具体操作如下:

  • 使用Admin SDK的getUser方法获取目标用户的完整记录,用户记录中的customClaims字段会返回该用户所有已设置的自定义声明(未设置过则返回空对象)。
  • 更新自定义声明时,先获取现有声明,将新声明与现有声明合并后,再传入setCustomUserClaims方法,避免清除原有未修改的声明。

代码示例(Node.js)

const admin = require('firebase-admin');

// 初始化Admin SDK(确保已完成配置)
admin.initializeApp();

async function updateUserCustomClaims(uid, newClaims) {
  // 获取用户现有自定义声明
  const userRecord = await admin.auth().getUser(uid);
  const existingClaims = userRecord.customClaims || {};

  // 合并现有声明与新声明(新声明会覆盖同名键)
  const updatedClaims = { ...existingClaims, ...newClaims };

  // 更新用户自定义声明
  await admin.auth().setCustomUserClaims(uid, updatedClaims);
  console.log(`用户 ${uid} 的自定义声明已更新`);
}

// 调用示例:添加/更新role声明,保留其他现有声明
updateUserCustomClaims('目标用户UID', { role: 'admin' });

注意:setCustomUserClaims方法会完全替换用户的自定义声明,因此必须传入包含所有需保留声明的完整对象,仅传新声明会清除原有声明。

内容的提问来源于stack exchange,提问作者GorvGoyl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:42:04