代码之家  ›  专栏  ›  技术社区  ›  hades

Firebase setCustomUserClaims总是重写旧的

  •  1
  • hades  · 技术社区  · 5 年前

    如果用户是管理员,则自定义声明将为:

    {isAdmin: true}
    

    现在我授予管理员访问用户模块的权限,在我的云函数代码中:

    exports.grantUserAccess = functions.https.onCall((data)=> {
      return firebase.auth().setCustomUserClaims(data.uid, {
        hasUserModule: true
      }).then(() => {
        return 'complete'
      })
    })
    

    所以我期望的是:

    {isAdmin: true, hasUserModule: true}
    

    但当我打印出用户声明时,似乎 isAdmin: undefined hasUserModule: true ,它基本上推翻了旧的说法,为什么?

    1 回复  |  直到 5 年前
        1
  •  3
  •   Doug Stevenson    5 年前

    根据 documentation on custom claims

    注意:此操作总是覆盖用户现有的自定义 自定义令牌具有更高的优先级,并且始终覆盖自定义 通过此API在用户上定义的用户声明。