kreait / laravel-firebase
用于 Firebase PHP Admin SDK 的 Laravel 扩展包
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- illuminate/contracts: ^9.0 || ^10.0 || ^11.0
- illuminate/support: ^9.0 || ^10.0 || ^11.0
- kreait/firebase-php: ^7.13
- symfony/cache: ^6.1.2 || ^7.0.3
Requires (Dev)
- laravel/pint: ^1.14
- orchestra/testbench: ^7.0 || ^8.0 || ^9.0
- phpunit/phpunit: ^9.6.17 || ^10.5.13
README
一个用于 Firebase PHP Admin SDK 的 Laravel 扩展包。
Firebase Admin PHP SDK 的未来
请阅读 SDK 的 GitHub 仓库 了解 Firebase Admin PHP SDK 的未来。
安装
composer require kreait/laravel-firebase
配置
为了通过服务器 SDK 访问 Firebase 项目及其相关服务,请求必须经过身份验证。对于服务器之间的通信,这通过服务账户来完成。
如果您还没有生成服务账户,可以通过官方文档页面上的说明来生成,链接为 https://firebase.google.com/docs/admin/setup#initialize_the_sdk_in_non-google_environments。
一旦下载了服务账户 JSON 文件,您可以通过在 .env
文件中指定以 FIREBASE_
开头的环境变量来配置该包。通常,以下内容对于包的正常工作是必需的
# You can find the database URL for your project at
# https://console.firebase.google.com/project/_/database
FIREBASE_DATABASE_URL=https://<your-project>.firebaseio.com
有关进一步配置的详细信息,请参阅 config/firebase.php。您可以通过将其复制到您的本地 config
目录或定义配置文件中使用的环境变量来修改配置
# Laravel php artisan vendor:publish --provider="Kreait\Laravel\Firebase\ServiceProvider" --tag=config
使用 JSON 文件凭据
该包使用自动发现来查找默认项目的凭据,以便通过检查某些环境变量并查看 Google 的已知路径来验证对 Firebase API 的请求。
如果您不想自动发现服务账户,可以通过设置 FIREBASE_CREDENTIALS
或 GOOGLE_APPLICATION_CREDENTIALS
环境变量或通过调整包配置来提供它,例如
FIREBASE_CREDENTIALS=storage/app/firebase-auth.json
使用数组凭据
如果您希望对配置项有更多控制,您也可以将服务账户 JSON 文件作为数组转换为您的 config/firebase.php
文件。
'credentials' => [ 'type' => 'service_account', 'project_id' => 'some-project-123', 'private_key_id' => '123456789', 'private_key' => '-----BEGIN PRIVATE KEY-----\nFOO_BAR_123456789\n-----END PRIVATE KEY-----\n', 'client_email' => 'firebase-adminsdk-cwiuo@some-project-123.iam.gserviceaccount.com', 'client_id' => '123456789', 'auth_uri' => 'https://#/o/oauth2/auth', 'token_uri' => 'https://oauth2.googleapis.com/token', 'auth_provider_x509_cert_url' => 'https://www.googleapis.com/oauth2/v1/certs', 'client_x509_cert_url' => 'https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-cwiuo%40some-project-123.iam.gserviceaccount.com', 'universe_domain' => 'googleapis.com', ],
使用方法
一旦检索到组件,请参阅 Firebase PHP Admin SDK 的文档 以获取有关如何使用的更多信息。
您不需要也不应该使用 SDK 文档中描述的 new Factory()
模式,这已经由 Laravel 服务提供者为您完成。使用依赖注入、门面或 app()
助手代替。
多个项目
可以通过向 config/firebase.php 中的项目数组添加另一个部分来在 config/firebase.php 中配置多个项目。
在访问组件时,门面使用默认项目。您也可以显式使用一个项目
use Kreait\Laravel\Firebase\Facades\Firebase; // Return an instance of the Auth component for the default Firebase project $defaultAuth = Firebase::auth(); // Return an instance of the Auth component for a specific Firebase project $appAuth = Firebase::project('app')->auth(); $anotherAppAuth = Firebase::project('another-app')->auth();
支持的版本
仅支持最新版本。
早期版本将收到安全修复,只要它们 最低 的 SDK 要求收到安全修复。您可以在 SDK 的 README 中找到当前支持的版本和支持选项。
许可证
本项目采用 MIT 许可协议 许可。
您对 Firebase 的使用受 Firebase 服务条款 的约束。