Я устанавливаю Firebase Admin SDK в NodeJS, Express API.
Я добавил конечную точку, которая позволяет мне создать пользователя -
route.post('/create', (req, res) => {
const { email, password } = req.body
fbseAdmin.auth().createUser({ email, password })
.then((userRecord) => {
res.status(200).json({ userRecord })
})
})
Однако я хотел бы убедиться, что у пользователя есть роли, чтобы я мог выполнять проверки авторизации для некоторых служб.
Я не понимаю, как мне этого добиться? Я думал, возможно, я добавлю запись в базу данных в реальном времени, что-то вроде -
users/uid/roles/<role name>: true
Однако я не уверен, что что-то упустил. Кроме того, если это так, и мне нужно это сделать, я бы сделал что-то вроде -
route.post('/create', (req, res) => {
const { email, password } = req.body
fbseAdmin.auth().createUser({ email, password })
.then((userRecord) => {
fbseAdmin.database()
.ref('users')
.child(`${userRecord.uid}/roles`)
.set({
admin: true
})
res.status(200).json({ userRecord })
})
})
Это кажется немного хрупким, если не сказать больше.
Кроме того, поскольку эта запись не является частью объекта пользователя, мне нужно будет искать в базе данных в реальном времени каждый раз, когда я хочу это проверить? Это правильно?