tomatophp / laravel-firebase

用于 Firebase PHP Admin SDK 的 Laravel 扩展包

资助包维护!
jeromegamez

v1.0.0 2024-03-12 18:54 UTC

This package is auto-updated.

Last update: 2024-09-12 20:03:20 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

一旦您下载了服务账户 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_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 中通过向项目数组添加另一个部分来配置多个项目。

在访问组件时,外观使用默认项目。您还可以显式使用项目

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