Skip to content

Commit ce396f7

Browse files
committed
Add support for Dynamic Links
1 parent 67d5ae8 commit ce396f7

File tree

6 files changed

+73
-5
lines changed

6 files changed

+73
-5
lines changed

CHANGELOG.md

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,36 @@
11
# CHANGELOG
22

3+
## Unreleased
4+
5+
* Updated `kreait/firebase-php` to `^4.32.0`
6+
* Added Dynamic Links to the Service Provider and as `FirebaseDynamicLinks` facade
7+
* Added `FIREBASE_DYNAMIC_LINKS_DEFAULT_DOMAIN` as environment variable
8+
9+
To update the package, please re-publish its configuration
10+
11+
```bash
12+
php artisan vendor:publish --provider="Kreait\Laravel\Firebase\ServiceProvider" --tag=config
13+
```
14+
15+
or add the following section to `config/firebase.php`:
16+
17+
```php
18+
<?php
19+
20+
return [
21+
// ...
22+
'dynamic_links' => [
23+
'default_domain' => env('FIREBASE_DYNAMIC_LINKS_DEFAULT_DOMAIN')
24+
],
25+
// ...
26+
];
27+
```
28+
329
## 1.0.1 - 2019-08-19
430

5-
* Make clear that this package needs Laravel 5.8 or higher.
6-
* Update `kreait/firebase-php` to `^4.30.1`
7-
* Require `illuminate/contracts` and `illuminate/support`
31+
* Made clear that this package needs Laravel 5.8 or higher.
32+
* Updated `kreait/firebase-php` to `^4.30.1`
33+
* Required `illuminate/contracts` and `illuminate/support`
834

935
## 1.0.0 - 2019-08-17
1036

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ php artisan vendor:publish --provider="Kreait\Laravel\Firebase\ServiceProvider"
6969
| --- | --- | --- | --- |
7070
| [Authentication](https://firebase-php.readthedocs.io/en/latest/authentication.html) | `\Kreait\Firebase\Auth` | `FirebaseAuth` | `app('firebase.auth')` |
7171
| [Cloud&nbsp;Messaging&nbsp;(FCM)](https://firebase-php.readthedocs.io/en/latest/cloud-messaging.html) | `\Kreait\Firebase\Messaging` | `FirebaseMessaging` | `app('firebase.messaging')` |
72+
| [Dynamic&nbsp;Links](https://firebase-php.readthedocs.io/en/latest/dynamic-links.html) | `\Kreait\Firebase\DynamicLinks` | `FirebaseDynamicLinks` | `app('firebase.dynamic_links')` |
7273
| [Realtime Database](https://firebase-php.readthedocs.io/en/latest/realtime-database.html) | `\Kreait\Firebase\Database` | `FirebaseDatabase` | `app('firebase.database')` |
7374
| [Remote Config](https://firebase-php.readthedocs.io/en/latest/remote-config.html) | `\Kreait\Firebase\RemoteConfig` | `FirebaseRemoteConfig` | `app('firebase.remote_config')` |
7475
| [Storage](https://firebase-php.readthedocs.io/en/latest/storage.html) | `\Kreait\Firebase\Storage` | `FirebaseStorage` | `app('firebase.storage')` |

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
}
1212
],
1313
"require": {
14-
"kreait/firebase-php": "^4.30.1",
14+
"kreait/firebase-php": "^4.32.0",
1515
"illuminate/contracts": "^5.8|^6.0",
1616
"illuminate/support": "^5.8|^6.0"
1717
},
@@ -31,6 +31,7 @@
3131
"aliases": {
3232
"FirebaseAuth": "Kreait\\Laravel\\Firebase\\Facades\\FirebaseAuth",
3333
"FirebaseDatabase": "Kreait\\Laravel\\Firebase\\Facades\\FirebaseDatabase",
34+
"FirebaseDynamicLinks": "Kreait\\Laravel\\Firebase\\Facades\\FirebaseDynamicLinks",
3435
"FirebaseMessaging": "Kreait\\Laravel\\Firebase\\Facades\\FirebaseMessaging",
3536
"FirebaseRemoteConfig": "Kreait\\Laravel\\Firebase\\Facades\\FirebaseRemoteConfig",
3637
"FirebaseStorage": "Kreait\\Laravel\\Firebase\\Facades\\FirebaseStorage"

config/firebase.php

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,26 @@
6060
* Please make sure that you use a full URL like, for example,
6161
* https://my-project-id.firebaseio.com
6262
*/
63-
6463
'url' => env('FIREBASE_DATABASE_URL'),
6564

6665
],
6766

67+
'dynamic_links' => [
68+
69+
/**
70+
* Dynamic links can be built with any URL prefix registered on
71+
*
72+
* https://console.firebase.google.com/u/1/project/_/durablelinks/links/
73+
*
74+
* You can define one of those domains as the default for new Dynamic
75+
* Links created within your project.
76+
*
77+
* The value must be a valid domain, for example,
78+
* https://example.page.link
79+
*/
80+
'default_domain' => env('FIREBASE_DYNAMIC_LINKS_DEFAULT_DOMAIN')
81+
],
82+
6883
/**
6984
* ------------------------------------------------------------------------
7085
* Firebase Cloud Storage
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Kreait\Laravel\Firebase\Facades;
6+
7+
use Illuminate\Support\Facades\Facade;
8+
9+
/**
10+
* @see \Kreait\Firebase\DynamicLinks
11+
*/
12+
final class FirebaseDynamicLinks extends Facade
13+
{
14+
protected static function getFacadeAccessor()
15+
{
16+
return 'firebase.dynamic_links';
17+
}
18+
}

src/ServiceProvider.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,13 @@ private function registerComponents()
6969
});
7070
$this->app->alias(Firebase\Database::class, 'firebase.database');
7171

72+
$this->app->singleton(Firebase\DynamicLinks::class, static function (Application $app) {
73+
$defaultDynamicLinksDomain = $app->make('config')['firebase']['dynamic_links']['default_domain'] ?? null;
74+
75+
return $app->make(Firebase\Factory::class)->createDynamicLinksService($defaultDynamicLinksDomain);
76+
});
77+
$this->app->alias(Firebase\DynamicLinks::class, 'firebase.dynamic_links');
78+
7279
$this->app->singleton(Firebase\Messaging::class, static function (Application $app) {
7380
return $app->make(Firebase\Factory::class)->createMessaging();
7481
});

0 commit comments

Comments
 (0)