kreait/laravel-firebase

用于 Firebase PHP Admin SDK 的 Laravel 扩展包

资助包维护!
jeromegamez
Tidelift

安装次数: 8,242,762

依赖者: 35

建议者: 0

安全: 0

星标: 1,042

关注者: 13

分支: 169

开放问题: 1

5.9.1 2024-06-23 20:49 UTC

README

一个用于 Firebase PHP Admin SDK 的 Laravel 扩展包。

Current version Monthly Downloads Total Downloads Tests codecov Sponsor

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_CREDENTIALSGOOGLE_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 服务条款 的约束。