如何将Firebase Auth与PHP应用程序集成?
我有一个简单的PHP API,用于验证使用我的应用程序的用户。 我一直在尝试使用Firebase Auth,但没有成功。 根据找到的文档,我得出以下结论:如何将Firebase Auth与PHP应用程序集成?,php,firebase,firebase-authentication,Php,Firebase,Firebase Authentication,我有一个简单的PHP API,用于验证使用我的应用程序的用户。 我一直在尝试使用Firebase Auth,但没有成功。 根据找到的文档,我得出以下结论: 我已经在Firebase控制台中创建了Firebase项目 我已经创建了一个服务帐户,为此我下载了包含所需凭据的Secret.json文件 我已将该文件放置在我的应用程序的根目录中 我使用以下代码与数据库交互: $serviceAccount = ServiceAccount::fromJsonFile(__DIR__.'/pat
- 我已经在Firebase控制台中创建了Firebase项目
- 我已经创建了一个服务帐户,为此我下载了包含所需凭据的Secret.json文件
- 我已将该文件放置在我的应用程序的根目录中
$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
}
当我尝试像这样循环遍历所有用户时:
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
临时修复(不建议用于生产):
- 转到Guzzle Client.php类
- 将验证设置为false
Auth::listUsers()
返回一个生成器,您可以使用foreach()
循环该生成器,也可以使用迭代器\u to \u array()
将其转换为数组-仅当您限制结果集时,才应使用后者,否则,当PHP尝试将数千条用户记录加载到内存中时,您将遇到性能问题。感谢您的回复@jeromegamez,我已经尝试了您的建议,我得到了以下错误:PHP致命错误:未捕获的GuzzleHttp\Exception\RequestException:cURL错误77:设置证书验证位置时出错
。你认为.json文件不是应该的吗?@Pmits呃,这是我还没听说过的一个。。。你能看看这是否有助于解决问题吗?您的JSON文件可能很好,这似乎是一个连接问题,我认为这是合适的解决方案,谢谢。我还更新了一个快速修复的问题,我只是为了测试的目的。再次感谢。