Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 列出customClaims用户的最佳方式_Javascript_Firebase_Firebase Authentication_Firebase Admin - Fatal编程技术网

Javascript 列出customClaims用户的最佳方式

Javascript 列出customClaims用户的最佳方式,javascript,firebase,firebase-authentication,firebase-admin,Javascript,Firebase,Firebase Authentication,Firebase Admin,我只是想在Firebase函数中列出用户 如果是管理员(customClaims),我只想列出用户 现在我喜欢这个和它的工作 exports.listAdmins = functions.https.onRequest(async (req, res) => { cors(req, res, () => {}); const token = req.body.token; try { const decodedToken = await admin.auth().

我只是想在Firebase函数中列出用户

如果是管理员(customClaims),我只想列出用户

现在我喜欢这个和它的工作

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'});
  }
});
但我想知道,如果我有10万用户,性能如何


有没有更好的过滤列表的方法?通过使用
admin.auth().listUsers()

可以从的API文档中看到,只有listUsers(),没有其他方法可以根据任何条件筛选用户。列出许多用户显然是一种昂贵的操作。请考虑将用户的信息存储在数据库中,而不是查询数据库。


您还可以自由选择Firebase SDK中缺少的功能。

谢谢!,提出请求。但我不确定这对另一个是否有用。:)