Получить несколько пользователей - PullRequest
1 голос
/ 26 февраля 2020

У меня есть список (uid) пользователей, которые подключены к группе. На одной странице я хочу перечислить все имена пользователей и электронные письма пользователей в списке.

Каков рекомендуемый способ получения пользовательских данных для каждого пользователя? Все, что я могу найти, это в admin sdk: admin.auth().getUser(uid)

  1. Нет ли способа получить несколько пользователей за один запрос? ex admin.auth().getUsers([uid1, uid2, uid3])?
  2. Нет ли способа сделать это в клиенте sdk?
  3. Если 1. невозможно, разве не так легко достичь пределов? https://firebase.google.com/docs/auth/limits#api_limits

1 Ответ

3 голосов
/ 26 февраля 2020

Невозможно получить список всех пользователей с помощью клиентского SDK, но вы можете сделать это двумя способами:

Используя базу данных Firebase Realtime

  1. Вы можете добавить узел имен пользователей и электронных писем, скажем, /users в вашей базе данных:

    {
      "users": {
        "user1": {
          "username": "user1",
          "email": "user1@mail.com"
        },
        "user2": {
          "username": "user2",
          "email": "user2@mail.com"
        }
      }
    }
    
  2. Затем просто запросите этот узел, используя once('value'):

    const users = await firebase.database.ref('/userProfiles').once('value');
    console.log(users);
    

Использование вызываемой функции и SDK Firebase Admin

  1. Создание функции HTTPS скажем getAllUsers(), который извлекает всех пользователей. Firebase Admin SDK позволяет перечислять всех пользователей партиями по 1000 .
  2. . Развернуть функцию с помощью firebase deploy --only functions:getAllUsers.
  3. . Затем вызвать функцию из клиента:
    const getAllUsers = firebase.functions().httpsCallable('getAllUsers');
    const users = await getAllUsers();
    console.log(users);
    
...