Как интегрировать Firebase Auth с приложением PHP? - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть простой PHP API, который используется для аутентификации пользователей, использующих мое приложение. Я пытался использовать Firebase Auth, но безуспешно. Следуя документации, найденной здесь , я пришел к точке, где:

  • Я создал проект Firebase в консоли Firebase.

  • Я создал служебную учетную запись, для которой я скачал секретный файл. json, содержащий необходимые учетные данные.

  • Я поместил файл в каталог root в мое приложение.

И я использую этот код для взаимодействия с базой данных:

    $serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/path/to/file.json');

    $firebase = (new Factory)
        ->withServiceAccount($serviceAccount)
        ->createAuth();

При выгрузке экземпляра $ firebase я получаю следующее:

^ Kreait\Firebase\Auth {#78 ▼
  -client: Kreait\Firebase\Auth\ApiClient {#55 ▶}
  -tokenGenerator: Firebase\Auth\Token\Generator {#58 ▶}
  -idTokenVerifier: Kreait\Firebase\Auth\IdTokenVerifier {#77 ▶}
}

Что заставляет меня верить, что соединение установлено успешно, но когда я пытаюсь перечислить всех пользователей

    $firebase->listUsers();

, я получаю следующее

^ Generator {#42 ▼
   this: Kreait\Firebase\Auth {#78 …}
   executing: {▼
     C:\Users\user\Projects\Simple-Api\vendor\kreait\firebase- 
php\src\Firebase\Auth.php:110 {▼
       Kreait\Firebase\Auth->listUsers(int $maxResults = 1000, int $batchSize = 1000): Generator …
       › {
       ›     $pageToken = null;
       ›     $count = 0;
     }
   }
   closed: false
 }

И когда я пытаюсь l oop через всех пользователей, как это:

   foreach ($users as $user) {
         var_dump($user);
     }

Я получаю эти ошибки:

cURL error 60: SSL certificate prblm: unable to get local issuer certificate
cURL error 77: SSL certificate prblm: unable to get local issuer certificate

ВРЕМЕННОЕ ИСПРАВЛЕНИЕ (не рекомендуется для производства):

  • Go для Guzzle Client. php class
  • Установите флажок проверки в false

1 Ответ

0 голосов
/ 18 февраля 2020

Если вы продолжите следовать документации, вы найдете

https://firebase-php.readthedocs.io/en/stable/user-management.html#list -пользователей

Auth::listUsers() возвращает генератор, который вы можете либо l oop через foreach() или преобразование в массив с iterator_to_array() - вы должны использовать последний, только если вы ограничите набор результатов, иначе вы столкнетесь с проблемами производительности, когда PHP попытается загрузить тысячи пользовательских записей в память.

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