首页 > 解决方案 > Firebase 管理员:列出所有用户返回空数组

问题描述

我有一个 https 可调用的 firebase 云函数,可以将所有用户作为他们的 userRecords 数组返回。我将每个 userRecords 推入一个稍后返回的数组中,但它返回一个空数组。

如何将此数组返回给客户端?

index.js:

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

  return listAllUsers();
});

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

  return admin.auth().listUsers(1000, nextPageToken)
    .then(function (listUsersResult) {
      listUsersResult.users.forEach(function (userRecord) {
        // For each user
        var userData = userRecord.toJSON();
        allUsers.push(userData);
      });
      if (listUsersResult.pageToken) {
        // List next batch of users.
        console.log('Next batch of users');

        return listAllUsers(listUsersResult.pageToken)
      }
      else {
        // All users have been fetched
        console.log('All users have been fetched');

        return allUsers
      }
    })
    .catch(function (error) {
      console.log("Error listing users:", error);
    });

}

客户端

const listAllUsers = this.afFunctions.httpsCallable('listAllUsers');
    listAllUsers({}).toPromise()
      .then(function (result) {
        console.log(result);
      });
  }

返回空数组

标签: node.jsfirebase-authenticationgoogle-cloud-functionsfirebase-admin

解决方案


推荐阅读