Не могу получить список пользователей, использующих Admin SDK Firebase - PullRequest
0 голосов
/ 04 сентября 2018

Если я добавлю к облачным функциям 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 Ответ

0 голосов
/ 04 сентября 2018

Вы, похоже, путаете два типа функций Cloud:

  1. Вызываемые функции, которые вы вызываете из своего приложения с помощью Firebase SDK.
  2. Обычные функции HTTP, которые вы вызываете из своего приложения, API-интерфейс обычного HTTP-клиента вашей клиентской платформы.

Облачные функции, которые вызываются с помощью обычных запросов HTTPS

Когда вы объявляете свою функцию как functions.https.onRequest, вам нужно написать свой ответ объекту ответа. Основываясь на документации о вызове функций через HTTP-запросы , вам необходимо выполнить:

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

Вызов облачных функций, которые вызываются с помощью Firebase SDK

Если вы хотите вызвать вашу облачную функцию из вашего приложения, используя Firebase SDK , вам нужно объявить свою функцию как:

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

  return listAllUsers();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...