kreait / firebase-bundle
Symfony Bundle for the Firebase Admin SDK
Fund package maintenance!
jeromegamez
Installs: 2 943 508
Dependents: 2
Suggesters: 1
Security: 0
Stars: 139
Watchers: 8
Forks: 27
Open Issues: 1
Type:symfony-bundle
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4
- kreait/firebase-php: ^7.0
- psr/simple-cache: ^1.0 || ^2.0 || ^3.0
- symfony/cache: ^5.4 || ^6.0 || ^7.0
- symfony/config: ^5.4 || ^6.0 || ^7.0
- symfony/dependency-injection: ^5.4 || ^6.0 || ^7.0
- symfony/http-kernel: ^5.4 || ^6.0 || ^7.0
Requires (Dev)
- phpunit/phpunit: ^9.5.10
This package is auto-updated.
Last update: 2024-10-16 19:06:32 UTC
README
A Symfony Bundle for the Firebase PHP SDK.
The future of the Firebase Admin PHP SDK
Please read about the future of the Firebase Admin PHP SDK on the SDK's GitHub Repository.
Overview
Firebase provides the tools and infrastructure you need to develop your app, grow your user base, and earn money. The Firebase Admin PHP SDK enables access to Firebase services from privileged environments (such as servers or cloud) in PHP.
For more information, visit the Firebase Admin PHP SDK documentation.
Installation
Add the bundle using Composer
composer require kreait/firebase-bundle
// Symfony without Flex // in %kernel.root_dir%/AppKernel.php $bundles = array( // ... new Kreait\Firebase\Symfony\Bundle\FirebaseBundle(), ); // Symfony with Flex // in config/bundles.php return [ // ... Kreait\Firebase\Symfony\Bundle\FirebaseBundle::class => ['all' => true], ];
Supported Versions
Only the latest version is actively supported.
Earlier versions will receive security fixes as long as their lowest SDK requirement receives security fixes. You can find the currently supported versions and support options in the SDK's README.
Configuration
Minimal
# app/config/config.yml (Symfony without Flex) # config/packages/firebase.yaml (Symfony with Flex) kreait_firebase: projects: my_project: credentials: '%kernel.project_dir%/config/my_project_credentials.json' other_project: # optional credentials: '%kernel.project_dir%/config/other_project_credentials.json'
The following services will be available for your project:
kreait_firebase.my_project.app_check
kreait_firebase.my_project.auth
kreait_firebase.my_project.database
kreait_firebase.my_project.firestore
kreait_firebase.my_project.messaging
kreait_firebase.my_project.remote_config
kreait_firebase.my_project.storage
kreait_firebase.my_project.dynamic_links
kreait_firebase.other_project.*
The following classes will be available for dependency injection if you have configured only one project:
Kreait\Firebase\Contract\AppCheck
Kreait\Firebase\Contract\Auth
Kreait\Firebase\Contract\Database
Kreait\Firebase\Contract\Firestore
Kreait\Firebase\Contract\Messaging
Kreait\Firebase\Contract\RemoteConfig
Kreait\Firebase\Contract\Storage
Kreait\Firebase\Contract\DynamicLinks
To make it easier to use classes via dependency injection in the constructor of a class when multiple projects exist, you can do this in the constructor:
Kreait\Firebase\Contract\AppCheck $myProjectAppCheck
Kreait\Firebase\Contract\Auth $myProjectAuth
Kreait\Firebase\Contract\Database $myProjectDatabase
Kreait\Firebase\Contract\Firestore $myProjectFirestore
Kreait\Firebase\Contract\Messaging $myProjectMessaging
Kreait\Firebase\Contract\RemoteConfig $myProjectRemoteConfig
Kreait\Firebase\Contract\Storage $myProjectStorage
Kreait\Firebase\Contract\DynamicLinks $myProjectDynamicLinks
Full
# app/config/config.yml (Symfony without Flex) # config/packages/firebase.yaml (Symfony with Flex) kreait_firebase: projects: my_project: # Optional: Path to the project's Service Account credentials file # If omitted, the credentials will be auto-discovered as described # in https://firebase-php.readthedocs.io/en/stable/setup.html credentials: '%kernel.project_dir%/config/my_project_credentials.json' # Optional: Override the project being used # If omitted, the project is automatically derived, e.g. from credentials project_id: 'project-b' # Optional: If set to true, this project will be used when # type hinting the component classes of the Firebase SDK, # e.g. Kreait\Firebase\Auth, Kreait\Firebase\Database, # Kreait\Firebase\Messaging, etc. default: false # Optional: If set to false, the service and its alias can only be # used via dependency injection, and not be retrieved from the # container directly. public: true # Optional: Should only be used if the URL of your Realtime # Database can not be generated with the project id of the # given Service Account database_uri: 'https://my_project.firebaseio.com' # Optional: Make the client tenant aware tenant_id: 'tenant-id' # Optional: Default domain for Dynamic Links default_dynamic_links_domain: 'https://my_project.page.link' # Optional: Used to cache Google's public keys. verifier_cache: null # Example: cache.app # Optional: Used to cache the authentication tokens for connecting to the Firebase servers. auth_token_cache: null # Example: cache.app # If set, logs simple HTTP request and response statuses http_request_logger: null # Example: monolog.logger.firebase # If set, logs detailed HTTP request and response statuses http_request_debug_logger: null # Example: monolog.logger.firebase_debug
Documentation
For documentation of the underlying SDK, visit the Firebase Admin PHP SDK documentation.
License
This project is licensed under the MIT License.
Your use of Firebase is governed by the Terms of Service for Firebase Services.