Der beste Weg zur Liste Benutzer mit customClaims

stimmen
1

Ich versuche nur Benutzer in aufzulisten Firebase Funktion

Und ich möchte nur Benutzer , wenn eine zur Liste Admin (customClaims)

Nun weiß ich nicht, wie diese und ihre Arbeit

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'});
  }
});

Aber ich habe mich gefragt , über die Leistung , wenn ich viele 100000 Nutzer hat?

Jeder besserer Weg , um die Liste zu filtern? durch den Einsatz admin.auth().listUsers()?

Veröffentlicht am 19/12/2018 um 14:16
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
3

Wie Sie aus der API - Dokumentation sehen Auth.listUsers () , gibt es nur Listusers (), und es gibt keine Alternative Anwender nach beliebigen Kriterien zu filtern. Listing viele Nutzer könnten offensichtlich Art eines teueren Betriebes sein. Betrachten wir stattdessen Informationen über die Benutzer in einer Datenbank zu speichern und die Datenbank abfragen , statt.

Sie sind auch frei , um ein Feature - Request - Datei für Funktionen , die Sie denken , wird von jeder Firebase SDK fehlen.

Beantwortet am 19/12/2018 um 17:08
quelle vom benutzer

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