laravel-notification-channels / fcm

Firebase Cloud Messaging (FCM) notifications channel for Laravel
https://laravel-notification-channels.com/
MIT License
472 stars 121 forks source link

Laravel 10 Support? #158

Closed stevenmaguire closed 1 year ago

stevenmaguire commented 1 year ago

The most recent release of this package does not appear to be compatible with Laravel 10.

Is that intentional?

dwightwatson commented 1 year ago

I can install this package with a fresh Laravel 10 project.

This isn't the first time it's come up through - #144 and #149 (though they were installing the wrong version).

It seems there is something specific that is preventing the installation. Maybe share the error you're receiving or if you can determine what is blocking the installation you can share the answer.

➜  Sites laravel new firebase

   _                               _
  | |                             | |
  | |     __ _ _ __ __ ___   _____| |
  | |    / _` | '__/ _` \ \ / / _ \ |
  | |___| (_| | | | (_| |\ V /  __/ |
  |______\__,_|_|  \__,_| \_/ \___|_|

Creating a "laravel/laravel" project at "./firebase"
Info from https://repo.packagist.org: #StandWithUkraine
Installing laravel/laravel (v10.2.5)
  - Downloading laravel/laravel (v10.2.5)
  - Installing laravel/laravel (v10.2.5): Extracting archive
Created project in /Users/dwight/Sites/firebase
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
Loading composer repositories with package information
Updating dependencies
Lock file operations: 108 installs, 0 updates, 0 removals
  - Locking brick/math (0.11.0)
  - Locking dflydev/dot-access-data (v3.0.2)
  - Locking doctrine/inflector (2.0.8)
  - Locking doctrine/lexer (3.0.0)
  - Locking dragonmantank/cron-expression (v3.3.2)
  - Locking egulias/email-validator (4.0.1)
  - Locking fakerphp/faker (v1.23.0)
  - Locking filp/whoops (2.15.3)
  - Locking fruitcake/php-cors (v1.2.0)
  - Locking graham-campbell/result-type (v1.1.1)
  - Locking guzzlehttp/guzzle (7.7.0)
  - Locking guzzlehttp/promises (2.0.0)
  - Locking guzzlehttp/psr7 (2.5.0)
  - Locking guzzlehttp/uri-template (v1.0.1)
  - Locking hamcrest/hamcrest-php (v2.0.1)
  - Locking laravel/framework (v10.16.1)
  - Locking laravel/pint (v1.10.5)
  - Locking laravel/sail (v1.23.1)
  - Locking laravel/sanctum (v3.2.5)
  - Locking laravel/serializable-closure (v1.3.1)
  - Locking laravel/tinker (v2.8.1)
  - Locking league/commonmark (2.4.0)
  - Locking league/config (v1.2.0)
  - Locking league/flysystem (3.15.1)
  - Locking league/flysystem-local (3.15.0)
  - Locking league/mime-type-detection (1.11.0)
  - Locking mockery/mockery (1.6.4)
  - Locking monolog/monolog (3.4.0)
  - Locking myclabs/deep-copy (1.11.1)
  - Locking nesbot/carbon (2.68.1)
  - Locking nette/schema (v1.2.3)
  - Locking nette/utils (v4.0.0)
  - Locking nikic/php-parser (v4.16.0)
  - Locking nunomaduro/collision (v7.7.0)
  - Locking nunomaduro/termwind (v1.15.1)
  - Locking phar-io/manifest (2.0.3)
  - Locking phar-io/version (3.2.1)
  - Locking phpoption/phpoption (1.9.1)
  - Locking phpunit/php-code-coverage (10.1.3)
  - Locking phpunit/php-file-iterator (4.0.2)
  - Locking phpunit/php-invoker (4.0.0)
  - Locking phpunit/php-text-template (3.0.0)
  - Locking phpunit/php-timer (6.0.0)
  - Locking phpunit/phpunit (10.2.6)
  - Locking psr/container (2.0.2)
  - Locking psr/event-dispatcher (1.0.0)
  - Locking psr/http-client (1.0.2)
  - Locking psr/http-factory (1.0.2)
  - Locking psr/http-message (2.0)
  - Locking psr/log (3.0.0)
  - Locking psr/simple-cache (3.0.0)
  - Locking psy/psysh (v0.11.19)
  - Locking ralouphie/getallheaders (3.0.3)
  - Locking ramsey/collection (2.0.0)
  - Locking ramsey/uuid (4.7.4)
  - Locking sebastian/cli-parser (2.0.0)
  - Locking sebastian/code-unit (2.0.0)
  - Locking sebastian/code-unit-reverse-lookup (3.0.0)
  - Locking sebastian/comparator (5.0.0)
  - Locking sebastian/complexity (3.0.0)
  - Locking sebastian/diff (5.0.3)
  - Locking sebastian/environment (6.0.1)
  - Locking sebastian/exporter (5.0.0)
  - Locking sebastian/global-state (6.0.1)
  - Locking sebastian/lines-of-code (2.0.0)
  - Locking sebastian/object-enumerator (5.0.0)
  - Locking sebastian/object-reflector (3.0.0)
  - Locking sebastian/recursion-context (5.0.0)
  - Locking sebastian/type (4.0.0)
  - Locking sebastian/version (4.0.1)
  - Locking spatie/backtrace (1.5.3)
  - Locking spatie/flare-client-php (1.4.1)
  - Locking spatie/ignition (1.9.0)
  - Locking spatie/laravel-ignition (2.2.0)
  - Locking symfony/console (v6.3.0)
  - Locking symfony/css-selector (v6.3.0)
  - Locking symfony/deprecation-contracts (v3.3.0)
  - Locking symfony/error-handler (v6.3.0)
  - Locking symfony/event-dispatcher (v6.3.0)
  - Locking symfony/event-dispatcher-contracts (v3.3.0)
  - Locking symfony/finder (v6.3.0)
  - Locking symfony/http-foundation (v6.3.1)
  - Locking symfony/http-kernel (v6.3.1)
  - Locking symfony/mailer (v6.3.0)
  - Locking symfony/mime (v6.3.0)
  - Locking symfony/polyfill-ctype (v1.27.0)
  - Locking symfony/polyfill-intl-grapheme (v1.27.0)
  - Locking symfony/polyfill-intl-idn (v1.27.0)
  - Locking symfony/polyfill-intl-normalizer (v1.27.0)
  - Locking symfony/polyfill-mbstring (v1.27.0)
  - Locking symfony/polyfill-php72 (v1.27.0)
  - Locking symfony/polyfill-php80 (v1.27.0)
  - Locking symfony/polyfill-php83 (v1.27.0)
  - Locking symfony/polyfill-uuid (v1.27.0)
  - Locking symfony/process (v6.3.0)
  - Locking symfony/routing (v6.3.1)
  - Locking symfony/service-contracts (v3.3.0)
  - Locking symfony/string (v6.3.0)
  - Locking symfony/translation (v6.3.0)
  - Locking symfony/translation-contracts (v3.3.0)
  - Locking symfony/uid (v6.3.0)
  - Locking symfony/var-dumper (v6.3.1)
  - Locking symfony/yaml (v6.3.0)
  - Locking theseer/tokenizer (1.2.1)
  - Locking tijsverkoyen/css-to-inline-styles (2.2.6)
  - Locking vlucas/phpdotenv (v5.5.0)
  - Locking voku/portable-ascii (2.0.1)
  - Locking webmozart/assert (1.11.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 108 installs, 0 updates, 0 removals
  - Downloading guzzlehttp/promises (2.0.0)
  - Downloading psr/simple-cache (3.0.0)
  - Downloading laravel/framework (v10.16.1)
  - Downloading laravel/sail (v1.23.1)
  - Downloading phpunit/php-code-coverage (10.1.3)
  - Installing doctrine/inflector (2.0.8): Extracting archive
  - Installing doctrine/lexer (3.0.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.27.0): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing dragonmantank/cron-expression (v3.3.2): Extracting archive
  - Installing symfony/deprecation-contracts (v3.3.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing fakerphp/faker (v1.23.0): Extracting archive
  - Installing symfony/polyfill-php80 (v1.27.0): Extracting archive
  - Installing symfony/polyfill-php83 (v1.27.0): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.27.0): Extracting archive
  - Installing symfony/http-foundation (v6.3.1): Extracting archive
  - Installing fruitcake/php-cors (v1.2.0): Extracting archive
  - Installing psr/http-message (2.0): Extracting archive
  - Installing psr/http-client (1.0.2): Extracting archive
  - Installing ralouphie/getallheaders (3.0.3): Extracting archive
  - Installing psr/http-factory (1.0.2): Extracting archive
  - Installing guzzlehttp/psr7 (2.5.0): Extracting archive
  - Installing guzzlehttp/promises (2.0.0): Extracting archive
  - Installing guzzlehttp/guzzle (7.7.0): Extracting archive
  - Installing guzzlehttp/uri-template (v1.0.1): Extracting archive
  - Installing laravel/pint (v1.10.5): Extracting archive
  - Installing symfony/yaml (v6.3.0): Extracting archive
  - Installing voku/portable-ascii (2.0.1): Extracting archive
  - Installing phpoption/phpoption (1.9.1): Extracting archive
  - Installing graham-campbell/result-type (v1.1.1): Extracting archive
  - Installing vlucas/phpdotenv (v5.5.0): Extracting archive
  - Installing symfony/css-selector (v6.3.0): Extracting archive
  - Installing tijsverkoyen/css-to-inline-styles (2.2.6): Extracting archive
  - Installing symfony/var-dumper (v6.3.1): Extracting archive
  - Installing symfony/polyfill-uuid (v1.27.0): Extracting archive
  - Installing symfony/uid (v6.3.0): Extracting archive
  - Installing symfony/routing (v6.3.1): Extracting archive
  - Installing symfony/process (v6.3.0): Extracting archive
  - Installing symfony/polyfill-php72 (v1.27.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.27.0): Extracting archive
  - Installing symfony/polyfill-intl-idn (v1.27.0): Extracting archive
  - Installing symfony/mime (v6.3.0): Extracting archive
  - Installing symfony/service-contracts (v3.3.0): Extracting archive
  - Installing psr/event-dispatcher (1.0.0): Extracting archive
  - Installing symfony/event-dispatcher-contracts (v3.3.0): Extracting archive
  - Installing symfony/event-dispatcher (v6.3.0): Extracting archive
  - Installing psr/log (3.0.0): Extracting archive
  - Installing egulias/email-validator (4.0.1): Extracting archive
  - Installing symfony/mailer (v6.3.0): Extracting archive
  - Installing symfony/error-handler (v6.3.0): Extracting archive
  - Installing symfony/http-kernel (v6.3.1): Extracting archive
  - Installing symfony/finder (v6.3.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.27.0): Extracting archive
  - Installing symfony/string (v6.3.0): Extracting archive
  - Installing symfony/console (v6.3.0): Extracting archive
  - Installing ramsey/collection (2.0.0): Extracting archive
  - Installing brick/math (0.11.0): Extracting archive
  - Installing ramsey/uuid (4.7.4): Extracting archive
  - Installing psr/simple-cache (3.0.0): Extracting archive
  - Installing nunomaduro/termwind (v1.15.1): Extracting archive
  - Installing symfony/translation-contracts (v3.3.0): Extracting archive
  - Installing symfony/translation (v6.3.0): Extracting archive
  - Installing nesbot/carbon (2.68.1): Extracting archive
  - Installing monolog/monolog (3.4.0): Extracting archive
  - Installing league/mime-type-detection (1.11.0): Extracting archive
  - Installing league/flysystem (3.15.1): Extracting archive
  - Installing league/flysystem-local (3.15.0): Extracting archive
  - Installing nette/utils (v4.0.0): Extracting archive
  - Installing nette/schema (v1.2.3): Extracting archive
  - Installing dflydev/dot-access-data (v3.0.2): Extracting archive
  - Installing league/config (v1.2.0): Extracting archive
  - Installing league/commonmark (2.4.0): Extracting archive
  - Installing laravel/serializable-closure (v1.3.1): Extracting archive
  - Installing laravel/framework (v10.16.1): Extracting archive
  - Installing laravel/sail (v1.23.1): Extracting archive
  - Installing laravel/sanctum (v3.2.5): Extracting archive
  - Installing nikic/php-parser (v4.16.0): Extracting archive
  - Installing psy/psysh (v0.11.19): Extracting archive
  - Installing laravel/tinker (v2.8.1): Extracting archive
  - Installing hamcrest/hamcrest-php (v2.0.1): Extracting archive
  - Installing mockery/mockery (1.6.4): Extracting archive
  - Installing filp/whoops (2.15.3): Extracting archive
  - Installing nunomaduro/collision (v7.7.0): Extracting archive
  - Installing sebastian/version (4.0.1): Extracting archive
  - Installing sebastian/type (4.0.0): Extracting archive
  - Installing sebastian/recursion-context (5.0.0): Extracting archive
  - Installing sebastian/object-reflector (3.0.0): Extracting archive
  - Installing sebastian/object-enumerator (5.0.0): Extracting archive
  - Installing sebastian/global-state (6.0.1): Extracting archive
  - Installing sebastian/exporter (5.0.0): Extracting archive
  - Installing sebastian/environment (6.0.1): Extracting archive
  - Installing sebastian/diff (5.0.3): Extracting archive
  - Installing sebastian/comparator (5.0.0): Extracting archive
  - Installing sebastian/code-unit (2.0.0): Extracting archive
  - Installing sebastian/cli-parser (2.0.0): Extracting archive
  - Installing phpunit/php-timer (6.0.0): Extracting archive
  - Installing phpunit/php-text-template (3.0.0): Extracting archive
  - Installing phpunit/php-invoker (4.0.0): Extracting archive
  - Installing phpunit/php-file-iterator (4.0.2): Extracting archive
  - Installing theseer/tokenizer (1.2.1): Extracting archive
  - Installing sebastian/lines-of-code (2.0.0): Extracting archive
  - Installing sebastian/complexity (3.0.0): Extracting archive
  - Installing sebastian/code-unit-reverse-lookup (3.0.0): Extracting archive
  - Installing phpunit/php-code-coverage (10.1.3): Extracting archive
  - Installing phar-io/version (3.2.1): Extracting archive
  - Installing phar-io/manifest (2.0.3): Extracting archive
  - Installing myclabs/deep-copy (1.11.1): Extracting archive
  - Installing phpunit/phpunit (10.2.6): Extracting archive
  - Installing spatie/backtrace (1.5.3): Extracting archive
  - Installing spatie/flare-client-php (1.4.1): Extracting archive
  - Installing spatie/ignition (1.9.0): Extracting archive
  - Installing spatie/laravel-ignition (2.2.0): Extracting archive
42 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

   INFO  Discovering packages.  

  laravel/sail ................................................................................................................................ DONE
  laravel/sanctum ............................................................................................................................. DONE
  laravel/tinker .............................................................................................................................. DONE
  nesbot/carbon ............................................................................................................................... DONE
  nunomaduro/collision ........................................................................................................................ DONE
  nunomaduro/termwind ......................................................................................................................... DONE
  spatie/laravel-ignition ..................................................................................................................... DONE

82 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force

   INFO  No publishable resources for tag [laravel-assets].  

No security vulnerability advisories found
> @php artisan key:generate --ansi

   INFO  Application key set successfully.  

   INFO  Application ready! Build something amazing.

➜  Sites cd firebase 
➜  firebase composer require laravel-notification-channels/fcm
./composer.json has been updated
Running composer update laravel-notification-channels/fcm
Loading composer repositories with package information
Updating dependencies
Lock file operations: 21 installs, 0 updates, 0 removals
  - Locking beste/clock (3.0.0)
  - Locking beste/json (1.2.1)
  - Locking fig/http-message-util (1.1.5)
  - Locking firebase/php-jwt (v6.8.1)
  - Locking google/auth (v1.28.0)
  - Locking google/cloud-core (v1.52.1)
  - Locking google/cloud-storage (v1.33.0)
  - Locking google/crc32 (v0.2.0)
  - Locking kreait/firebase-php (7.5.1)
  - Locking kreait/firebase-tokens (4.2.0)
  - Locking kreait/laravel-firebase (5.3.0)
  - Locking laravel-notification-channels/fcm (3.2.1)
  - Locking lcobucci/clock (3.1.0)
  - Locking lcobucci/jwt (5.0.0)
  - Locking mtdowling/jmespath.php (2.6.1)
  - Locking psr/cache (3.0.0)
  - Locking psr/clock (1.0.0)
  - Locking rize/uri-template (0.3.5)
  - Locking symfony/cache (v6.3.1)
  - Locking symfony/cache-contracts (v3.3.0)
  - Locking symfony/var-exporter (v6.3.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 21 installs, 0 updates, 0 removals
  - Downloading psr/cache (3.0.0)
  - Downloading lcobucci/jwt (5.0.0)
  - Downloading fig/http-message-util (1.1.5)
  - Downloading beste/clock (3.0.0)
  - Downloading kreait/firebase-tokens (4.2.0)
  - Downloading rize/uri-template (0.3.5)
  - Downloading beste/json (1.2.1)
  - Downloading kreait/laravel-firebase (5.3.0)
  - Installing google/crc32 (v0.2.0): Extracting archive
  - Installing psr/cache (3.0.0): Extracting archive
  - Installing mtdowling/jmespath.php (2.6.1): Extracting archive
  - Installing psr/clock (1.0.0): Extracting archive
  - Installing lcobucci/jwt (5.0.0): Extracting archive
  - Installing lcobucci/clock (3.1.0): Extracting archive
  - Installing fig/http-message-util (1.1.5): Extracting archive
  - Installing beste/clock (3.0.0): Extracting archive
  - Installing kreait/firebase-tokens (4.2.0): Extracting archive
  - Installing rize/uri-template (0.3.5): Extracting archive
  - Installing firebase/php-jwt (v6.8.1): Extracting archive
  - Installing google/auth (v1.28.0): Extracting archive
  - Installing google/cloud-core (v1.52.1): Extracting archive
  - Installing google/cloud-storage (v1.33.0): Extracting archive
  - Installing beste/json (1.2.1): Extracting archive
  - Installing kreait/firebase-php (7.5.1): Extracting archive
  - Installing symfony/var-exporter (v6.3.0): Extracting archive
  - Installing symfony/cache-contracts (v3.3.0): Extracting archive
  - Installing symfony/cache (v6.3.1): Extracting archive
  - Installing kreait/laravel-firebase (5.3.0): Extracting archive
  - Installing laravel-notification-channels/fcm (3.2.1): Extracting archive
7 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

   INFO  Discovering packages.  

  kreait/laravel-firebase ..................................................................................................................... DONE
  laravel-notification-channels/fcm ........................................................................................................... DONE
  laravel/sail ................................................................................................................................ DONE
  laravel/sanctum ............................................................................................................................. DONE
  laravel/tinker .............................................................................................................................. DONE
  nesbot/carbon ............................................................................................................................... DONE
  nunomaduro/collision ........................................................................................................................ DONE
  nunomaduro/termwind ......................................................................................................................... DONE
  spatie/laravel-ignition ..................................................................................................................... DONE

93 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force

   INFO  No publishable resources for tag [laravel-assets].  

No security vulnerability advisories found
Using version ^3.2 for laravel-notification-channels/fcm
stevenmaguire commented 1 year ago

I found the source of the confusion....

This Github repo is reporting 2.5.x as the most recent "release": https://github.com/laravel-notification-channels/fcm/releases

Packagist is reporting a 3.2.x as the most recent release based on the tags on this repo: https://github.com/laravel-notification-channels/fcm/tags

I am upgrading an existing project, so I am looking for specific version numbers to update, rather than doing a fresh install which would get latest.

Thanks.

dwightwatson commented 1 year ago

Awesome - thanks for digging in and letting me know. Wonder if that's what tripped up some other people too. I would never have considered that because I normally just do a composer require and hope for the best.

I'll create a GitHub release now just to clear some confusion.

stevenmaguire commented 1 year ago

That could be it. I know it's technically not "broken" and working fine. But the "Releases" section on the repo is the first place I look. I am likely not the only one. Thanks for the help.