FireBase setCustomUserClaims всегда переопределяет старый - PullRequest
0 голосов
/ 25 февраля 2019

В firebase я хочу использовать пользовательские утверждения для установки роли пользователя, а также модули, к которым пользователь имеет доступ.

Если пользователь является администратором, пользовательское утверждение будет:

{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 Ответ

0 голосов
/ 25 февраля 2019

В соответствии с документацией по пользовательским утверждениям :

Примечание: эта операция всегда перезаписывает существующие пользовательские утверждения пользователя.Однако если те же пользовательские утверждения пользователя определены для пользователя, вошедшего в систему с помощью настраиваемой проверки подлинности, перекрывающиеся утверждения, определенные в настраиваемом токене, имеют более высокий приоритет и всегда перезаписывают настраиваемые утверждения пользователя, определенные для пользователя через этот API.

Итак, это ожидаемое поведение.

...