无法获取使用Admin SDK Firebase的用户列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法获取使用Admin SDK Firebase的用户列表相关的知识,希望对你有一定的参考价值。

如果我添加到Firebase云功能,我无法获得用户列表。我已经尝试了很多东西,并遵循firebase文档指南,但它只是继续运行,但从不加载。

exports.listAllUsers = functions.https.onRequest((data, context) => 
  // List all users

  return listAllUsers();
);

function listAllUsers() 
  // List batch of users, 1000 at a time.
  var allUsers = [];

  return admin.auth().listUsers()
    .then(function (listUsersResult) 
      listUsersResult.users.forEach(function (userRecord) 
        // For each user
        var userData = userRecord.toJSON();
        allUsers.push(userData);
      );
        return allUsers
    )
    .catch(function (error) 
      console.log("Error listing users:", error);
    );


答案

您似乎混淆了两种类型的云功能:

  1. 您可以使用Firebase SDK从应用调用的可调用功能。
  2. 常规HTTP功能,您可以从应用程序调用客户端平台的常规HTTP客户端API。

Cloud Functions that are invoked with regular HTTPS requests

将函数声明为functions.https.onRequest时,需要将响应写入响应对象。基于documentation on calling functions through HTTP requests,你需要做:

exports.listAllUsers = functions.https.onRequest((req, res) => 
  // List batch of users, 1000 at a time.
  var allUsers = [];

  return admin.auth().listUsers()
    .then(function (listUsersResult) 
      listUsersResult.users.forEach(function (userRecord) 
        // For each user
        var userData = userRecord.toJSON();
        allUsers.push(userData);
      );
      res.status(200).send(JSON.stringify(allUsers));
    )
    .catch(function (error) 
      console.log("Error listing users:", error);
      res.status(500).send(error);
    );
);

Calling Cloud Functions that are invoked using the Firebase SDK

如果你想要call your Cloud Function from within your app using the Firebase SDK,你需要将你的函数声明为:

exports.listAllUsers = functions.https.onCall((data, context) => 
  // List all users

  return listAllUsers();
);

以上是关于无法获取使用Admin SDK Firebase的用户列表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 firebase admin sdk 列出所有用户

Firebase Admin SDK、FCM 云消息传递

我可以使用 Firebase Admin SDK for Node 重置用户密码吗?

来自 SQL 的 Firebase Java Admin SDK 初学者

Firebase Cloud Storage Java Admin SDK 使用 contentType 上传文件

Firebase云功能Admin SDK - 列出用户 - 分页问题