No se puede obtener la lista de usuarios que utilizan Admin SDK Firebase

Si agrego a las funciones de la nube de Firebase, no puedo obtener una lista de usuarios. He intentado muchas cosas y he seguido la guía en la documentación de firebase, pero sigue corriendo, pero nunca se carga.

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

Pareces estar confundiendo dos tipos de funciones en la nube:

  1. Funciones invocables, a las que llama desde su aplicación utilizando el SDK de Firebase.
  2. Funciones HTTP regulares, a las que llama desde su aplicación, la API de cliente HTTP regular de su plataforma cliente.

Funciones en la nube que se invocan con solicitudes HTTPS regulares

Cuando declara su función como functions.https.onRequest , necesita escribir su respuesta al objeto de respuesta. Según la documentación sobre las funciones de llamada a través de solicitudes HTTP , deberá hacer:

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

Llamar a las funciones de la nube que se invocan utilizando el SDK de Firebase

Si desea llamar a su Función de nube desde su aplicación utilizando el SDK de Firebase , debe declarar su función como:

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