tomatophp / laravel-firebase
用于 Firebase PHP Admin SDK 的 Laravel 扩展包
资助包维护!
jeromegamez
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.0
- symfony/cache: ^6.1.2 || ^7.0.3
Requires (Dev)
- laravel/pint: ^1.14
- orchestra/testbench: ^7.0 || ^8.0
- phpunit/phpunit: ^9.6 || ^11.0
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。
一旦您下载了服务账户 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 文件存储凭据
此包使用自动发现来查找默认项目所需的凭据,以通过检查某些环境变量并查找谷歌的已知路径来对 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 中通过向项目数组添加另一个部分来配置多个项目。
在访问组件时,外观使用默认项目。您还可以显式使用项目
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服务条款的约束。