Please read about the future of the Firebase Admin PHP SDK on the SDK's GitHub Repository.
- It is now possible to override the Guzzle HTTP handler by using the
HttpClientOptions::withGuzzleHandler()
method. (#956)
- The Messaging component doesn't rely on the
CloudMessage
class for message handling anymore. If you provide a message as an array and it has an error, the Firebase API will report it. You can still use theCloudMessage
class as a message builder - Deprecated the
CloudMessage::withTarget()
method, use the newtoToken()
,toTopic()
ortoCondition()
methods instead
Kreait\Firebase\Messaging\CloudMessage::withTarget()
Kreait\Firebase\Messaging\CloudMessage::withChangedTarget()
Kreait\Firebase\Messaging\CloudMessage::target()
Kreait\Firebase\Messaging\CloudMessage::hasTarget()
7.15.0 - 2024-09-11
- Added support for rollout parameter values
in Remote Config Templates.
(#923), (#927)
- Please note that it's not (yet?) possible to create rollouts programmatically via the Firebase API. This means that
you have to manually create a rollout in the Firebase console to be able to reference it in the Remote Config
template. Rollout IDs are named
rollout_<number>
, and you can find the ID in the URL after clicking on a rollout in the list.
- Please note that it's not (yet?) possible to create rollouts programmatically via the Firebase API. This means that
you have to manually create a rollout in the Firebase console to be able to reference it in the Remote Config
template. Rollout IDs are named
7.14.0 - 2024-08-21
- Added support for PHP 8.4.
- Please note: While the SDK supports PHP 8.4, not all dependencies support it. If you want to use the SDK with
PHP 8.4, you probably will need to ignore platform requirements when working with Composer, by setting the
appropriate environment variables
or
composer
CLI options when runningcomposer install/update/require
.
- Please note: While the SDK supports PHP 8.4, not all dependencies support it. If you want to use the SDK with
PHP 8.4, you probably will need to ignore platform requirements when working with Composer, by setting the
appropriate environment variables
or
- Firebase Dynamic Links is deprecated and should not be used in new projects. The service will shut down on August 25, 2025. The component will remain in the SDK until then, but as the Firebase service is deprecated, this component is also deprecated. (Dynamic Links Deprecation FAQ)
7.13.1 - 2024-07-02
7.13.0 - 2024-06-23
- Service Account auto-discovery was done on instantiation of the Factory, causing it to fail when credentials weren't ready yet. It will now be done the first time a component is to be instantiated.
7.12.0 - 2024-05-26
- Fix
WebPushNotification
Shape (#895) - Catch
Throwable
and let the exception converter handle details (#896)
7.11.0 - 2024-05-16
- It is now possible to get a Remote Config template by its version number. (#890)
7.10.0 - 2024-04-25
- FCM Messages are now sent asynchronously using HTTP connection pooling with HTTP/2. This should improve performance when sending messages to many devices. (#874)
7.9.1 - 2023-12-04
- Re-enabled the use of
psr/http-message
v1.0 (#850)
7.9.0 - 2023-11-30
- Added support for PHP 8.3
7.8.0 - 2023-11-25
- Added
Kreait\Firebase\Factory::withFirestoreClientConfig()
to support setting additional options when creating the Firestore component. (Documentation) - Added
Kreait\Firebase\Factory::withFirestoreDatabase()
to specify the database used when creating the Firestore component. (Documentation)
7.7.0 - 2023-11-25
- Required transitive dependencies directly (#842)
{
"require": {
// ...
"ext-filter": "*",
"guzzlehttp/promises": "^2.0",
"guzzlehttp/psr7": "^2.6",
"psr/clock": "^1.0",
"psr/http-client": "^1.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^2.0",
}
}
7.6.0 - 2023-09-07
- The
Kreait\Firebase\Exception\Messaging\NotFound
exception now exposes the token that hasn't been found with thetoken()
method. (#825)
7.5.2 - 2023-06-29
- Added FCM error handling to the documentation
7.5.1 - 2023-06-29
- The cached KeySet used by the AppCheck component didn't use the same Guzzle Config Options as the other clients (#812)
7.5.0 - 2023-06-27
- Replaced calls to deprecated FCM batch endpoints with asynchronous requests to the HTTP V1 API (#804/#805)
- Removed message limit when sending multiple FCM messages
- The message limit was needed when using the FCM batch endpoints because they used multipart requests and responses. The limit prevented these messages to become too large. Since we're now using asynchronous calls to send one request per message, this limitation is not needed anymore.
- Simplified convoluted Dynamic Link operations (#810)
-
Removed obsolete internal classes
Kreait\Firebase\Http\HasSubRequests
Kreait\Firebase\Http\HasSubResponses
Kreait\Firebase\Http\Requests
Kreait\Firebase\Http\RequestWithSubRequests
Kreait\Firebase\Http\Responses
Kreait\Firebase\Http\ResponseWithSubResponses
Kreait\Firebase\Http\WrappedPsr7Response
Kreait\Firebase\Http\WrappedPsr7Request
Kreait\Firebase\Messaging\Http\Request\MessageRequest
Kreait\Firebase\Messaging\Http\Request\SendMessage
Kreait\Firebase\Messaging\Http\Request\SendMessageToTokens
Kreait\Firebase\Messaging\Http\Request\SendMessages
-
Removed obsolete internal methods
Kreait\Firebase\Http\Middleware::responseWithSubResponses()
-
Removed obsolete Composer dependency
riverline/multipart-parser
7.4.0 - 2023-06-18
- Added support for Parameter Value Types when getting and setting a RemoteConfig template. (Documentation)
Kreait\Firebase\RemoteConfig\ExplicitValue
is deprecatedKreait\Firebase\RemoteConfig\DefaultValue
should be regarded as deprecated, it is kept to not create a breaking changes
7.3.1 - 2023-06-10
- Removed direct dependency to
psr/http-message
7.3.0 - 2023-06-03
- It is now possible to add config options and middlewares to the Guzzle HTTP Client performing the HTTP Requests
to the Firebase APIs through the
HttpClientOptions
class. (Documentation)
7.2.1 - 2023-04-04
- Fixed a user's MFA information not being correctly parsed (#783)
7.2.0 - 2023-03-24
- Added support for the Firebase Auth Emulator when using
lcobucci/jwt
5.*
7.1.0 - 2023-03-01
- Added support for
lcobucci/jwt
5.*
7.0.3 - 2023-02-13
- Restored support for using a JSON string in the
GOOGLE_APPLICATION_CREDENTIALS
environment variable. (#767)
7.0.2 - 2023-01-27
- Cloud Messaging: The APNS
content-available
payload field was not set correctly when a message contained message data at the root level, but not at the APNS config level. (#762)
7.0.1 - 2023-01-24
- When trying to work with unknown FCM tokens, errors returned from the Messaging REST API were not passed to
the
NotFound
exception, which prevented the inspection of further details. (#760)
7.0.0 - 2022-12-20
The most notable change is that you need PHP 8.1/8.2 to use the new version. The language migration of the SDK introduces breaking changes concerning the strictness of parameter types almost everywhere in the SDK - however, this should not affect your project in most cases (unless you have used internal classes directly or by extension).
This release adds many more PHPDoc annotations to support the usage of Static Analysis Tools like PHPStan and Psalm and moves away from doing runtime checks. It is strongly recommended to use a Static Analysis Tool and ensure that input values are validated before handing them over to the SDK.
- Added support for verifying Firebase App Check Tokens. (#747)
- The ability to disable credentials auto-discovery has been removed. If you don't want a service account to be
auto-discovered, provide it by using the
withServiceAccount()
method of the Factory or by setting theGOOGLE_APPLICATION_CREDENTIALS
environment variable. Depending on the environment in which the SDK is running, credentials could be auto-discovered otherwise, for example on GCP or GCE.
See UPGRADE-7.0 for more details on the changes between 6.x and 7.0.
https://github.com/kreait/firebase-php/blob/6.9.6/CHANGELOG.md