Melhor maneira para listar os usuários com customClaims

votos
1

Eu apenas tentando listar os usuários em função Firebase

E eu quero listar apenas os usuários se um administrador (customClaims)

Agora eu faço como este e seu trabalho

exports.listAdmins = functions.https.onRequest(async (req, res) => {
  cors(req, res, () => {});
  const token = req.body.token;
  try {
    const decodedToken = await admin.auth().verifyIdToken(token);
    if (decodedToken) {
      let users = [];
      const list = async (nextPageToken) => {
        await admin.auth().listUsers(1000, nextPageToken).then(async (result) => {
          result.users.forEach((userRecord) => {
            const user = userRecord.toJSON();
            if (user.customClaims && user.customClaims.admin) {
              users.push(user);
            }
          });
          if (result.pageToken) {
            await list(result.pageToken)
          }
        })
      };
      await list()
      res.status(200).send({
        success: 'SUCCESS',
        users: users
      });
    }
  } catch (error) {
    res.status(500).send({error: 'SOMETHING_WRONG'});
  }
});

Mas eu queria saber sobre o desempenho se eu tivesse muitos usuários 100000?

Qualquer maneira melhor para filtrar a lista? usando admin.auth().listUsers()?

Publicado 19/12/2018 em 14:16
fonte usuário
Em outras línguas...                            


1 respostas

votos
3

Como você pode ver a partir da documentação da API para Auth.listUsers () , há apenas ListUsers (), e não há nenhuma alternativa para filtrar os usuários por qualquer critério. Listando muitos usuários poderia, obviamente, ser uma espécie de uma operação cara. Considere em vez armazenar informações sobre seus usuários em um banco de dados, e consultar o banco de dados em vez disso.

Você também é livre para apresentar um pedido de recurso para a funcionalidade que você acha que está faltando a partir de qualquer Firebase SDK.

Respondeu 19/12/2018 em 17:08
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more