Административный SDK Firebase для Node.js предоставляет нам способ получения каждого пользователя в нашем проекте, как показано в документации здесь .
Я реализовал это самостоятельно код следующим образом:
const listAllUsers = (nextPageToken) => {
return new Promise((resolve, reject) => {
// List batch of users, 1000 at a time.
const customerUIDs = []
admin.auth().listUsers(1000, nextPageToken)
.then((listUsersResult) => {
listUsersResult.users.forEach((userRecord) => {
// check for customers by their claims
if (userRecord.toJSON().customClaims.customer) {
customerUIDs.push(userRecord.toJSON().uid)
}
})
if (listUsersResult.pageToken) {
// List next batch of users.
listAllUsers(listUsersResult.pageToken)
}
resolve(customerUIDs)
})
.catch((error) => {
reject(error)
})
})
}
...
// some
// more
// code
NB: при создании пользователя мы назначаем настраиваемые утверждения customer: true
, чтобы указать, что пользователь является клиентом, а не администратором. Это происходит в моих облачных функциях, поэтому нет необходимости вставлять его сюда снова.
Мой вопрос: : Эта функция, приведенная выше, является одноразовой операцией. Как мне прослушать новых пользователей и добавить их в массив customerUIDs
?