kreait/laravel-firebase
Laravel package integrating the Firebase PHP Admin SDK. Configure via service account credentials, access Firebase services through Laravel-friendly bindings, and support multiple Firebase projects. Maintained under beste org; namespace/package name unchanged.
Pros:
Firebase::auth(), Firebase::project('app')->storage()) for quick prototyping and usage.config/firebase.php and environment variables aligns with Laravel’s 12-factor principles.Cons:
kreait/firebase-php SDK, complex Firebase features (e.g., advanced Firestore transactions, AppCheck custom rules) may still require direct SDK usage.v6.x of the package would be required (but drops PHP 8.2 support).kreait/firebase-php v8.x is used, ensuring access to the latest Firebase Admin SDK features (e.g., AppCheck, Firestore offline persistence).v5.x to v6.x of the SDK (in v4.0.0 of this package) may require refactoring if migrating from older versions.FIREBASE_CREDENTIALS), environment variables, or raw config arrays. This flexibility accommodates CI/CD (e.g., GitHub Actions) and multi-environment setups.kreait/firebase-php v8.x). Teams using PHP 8.2 or lower must downgrade or upgrade.composer require kreait/laravel-firebase:^6.2.0 for PHP 8.2 support (but loses Laravel 13 compatibility).stateless: true in queues or configure SDK to avoid persistent connections.FirebaseAuth) are deprecated in favor of Firebase::auth(). Refactor early to avoid tech debt.Firebase::project('name') syntax early.GOOGLE_APPLICATION_CREDENTIALS is set or credentials are injected securely.Mockery or kreait/firebase-php's mocking utilities.http_debug_log_channel in config.vendor:publish).kreait/firebase-php unless needing unsupported features.curl and openssl for HTTP requests. Verify these are enabled in php.ini.Firebase::auth()).composer require kreait/laravel-firebase
php artisan vendor:publish --provider="Kreait\Laravel\Firebase\ServiceProvider" --tag=config
.env with FIREBASE_DATABASE_URL and credentials path.Firebase::auth()->createUser()).public function __construct(private FirebaseAuth $auth) {}
'projects' => [
'app' => [
'database_url' => 'https://app.firebaseio.com',
'credentials' => storage_path('app/firebase-app.json'),
],
'analytics' => [
'database_url' => 'https://analytics.firebaseio.com',
],
],
Mockery to stub Firebase services:
$this->mock(FirebaseAuth::class)->shouldReceive('createUser')->once();
Storage facade for JSON files).v6.x for Laravel 10 (PHP 8.2) or v5.x for Laravel 9 (PHP 8.1).php -m | grep -E 'curl|openssl' returns both extensions.kreait/firebase-php v8.x supports all required Firebase features (check SDK docs).Firebase).kreait/laravel-firebase.config/firebase.php.beste/laravel-firebase for breaking changes (e.g., PHP 8.5 support in v6.2.0).composer require kreait/laravel-firebase --update in CI/CD with tests.kreait/firebase-php may introduce breaking changesHow can I help you explore Laravel packages today?