ktamas77/firebase-php
PHP library for Firebase integration: access Realtime Database, Authentication and other Firebase services with a simple, lightweight API. Supports service account credentials, token handling, and common CRUD operations—useful for Laravel or any PHP app needing Firebase.
Pros:
Cons:
ServiceProvider (e.g., FirebaseServiceProvider) to manage configuration and singleton instances.Firebase::auth()->createUser()) for consistency with Eloquent.auth:firebase).FirebaseExportJob).firebase-jwt for verification).env() for sensitive keys (never hardcode).DatabaseRepository) for easier swaps.FirebaseAuth, FirestoreDB).config/firebase.php for service URLs, credentials, and emulators.Phase 1: Auth Integration
Route::middleware(['auth:firebase'])->group(...);.Phase 2: Firestore/Realtime DB
// Laravel Model
public function saveToFirestore(): void {
$data = $this->toArray();
app(FirestoreDB::class)->collection('users')->document($this->id)->set($data);
}
Phase 3: Storage & Functions
Phase 4: Real-Time Features
firebase.json).Mockery).| Step | Action | Dependencies |
|---|---|---|
| 1. Setup | Install package, configure firebase.php, set up service provider. |
Laravel 9+, PHP 8.0+ |
| 2. Auth Integration | Replace auth for select routes/users. | Firebase project, service account key |
| 3. Data Migration | Sync existing data to Firestore (one-time script). | Eloquent models, Firestore rules |
| 4. Dual-Write | Implement write operations to both DBs. | Database migrations |
| 5. Real-Time Features | Add Firestore listeners for live updates. | Laravel Echo/Pusher |
| 6. Storage Functions | Migrate file storage and serverless logic. | Firebase Storage/Cloud Functions |
| 7. Monitoring | Set up logging, alerts, and performance tracking. | Laravel Horizon, Firebase Console |
ktamas77/firebase-php for breaking changes (e.g., Firebase SDK updates).stack channel.withContext() in logs to correlate Laravel and Firebase operations.Firebase\Auth\TokenExpiredException by refreshing tokens via FirebaseAuth::refreshToken().batch() for bulk writes to reduce latency.limit() and cursor for large datasets.array-contains queries.How can I help you explore Laravel packages today?