Skip to content

Commit 86e1dab

Browse files
committed
Defer Service Provider Registration
1 parent 2ec5f02 commit 86e1dab

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
## Unreleased
44

5+
* Service Provider Registration is now deferred. This should fix the credentials auto discovery in Laravel's
6+
package discovery stage
7+
([#210](https://github.com/kreait/laravel-firebase/pull/210))
8+
59
## 5.8.0 - 2024-03-13
610

711
* Added support for Laravel 11

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
],
1313
"require": {
1414
"php": "~8.1.0 || ~8.2.0 || ~8.3.0",
15-
"kreait/firebase-php": "^7.0",
15+
"kreait/firebase-php": "^7.13",
1616
"illuminate/contracts": "^9.0 || ^10.0 || ^11.0",
1717
"illuminate/support": "^9.0 || ^10.0 || ^11.0",
1818
"symfony/cache": "^6.1.2 || ^7.0.3"

src/ServiceProvider.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
namespace Kreait\Laravel\Firebase;
66

77
use Illuminate\Contracts\Container\Container;
8+
use Illuminate\Contracts\Support\DeferrableProvider;
89
use Kreait\Firebase;
910

10-
final class ServiceProvider extends \Illuminate\Support\ServiceProvider
11+
final class ServiceProvider extends \Illuminate\Support\ServiceProvider implements DeferrableProvider
1112
{
1213
public function boot(): void
1314
{
@@ -62,4 +63,19 @@ private function registerManager(): void
6263
$this->app->singleton(FirebaseProjectManager::class, static fn (Container $app) => new FirebaseProjectManager($app));
6364
$this->app->alias(FirebaseProjectManager::class, 'firebase.manager');
6465
}
66+
67+
public function provides(): array
68+
{
69+
return [
70+
Firebase\Contract\AppCheck::class,
71+
Firebase\Contract\Auth::class,
72+
Firebase\Contract\Database::class,
73+
Firebase\Contract\DynamicLinks::class,
74+
Firebase\Contract\Firestore::class,
75+
Firebase\Contract\Messaging::class,
76+
Firebase\Contract\RemoteConfig::class,
77+
Firebase\Contract\Storage::class,
78+
FirebaseProjectManager::class,
79+
];
80+
}
6581
}

0 commit comments

Comments
 (0)