- Notifications
You must be signed in to change notification settings - Fork2.2k
angular/angularfire
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
The officialAngular library forFirebase.
ng add @angular/fire
AngularFire smooths over the rough edges an Angular developer might encounter when implementing the framework-agnosticFirebase JS SDK & aims to provide a more natural developer experience by conforming to Angular conventions.
- Dependency injection - Provide and Inject Firebase services in your components
- Zone.js wrappers - Stable zones allow proper functionality of service workers, forms, SSR, and pre-rendering
- Observable based - Utilize RxJS rather than callbacks for realtime streams
- NgRx friendly API - Integrate with NgRx using AngularFire's action based APIs.
- Lazy-loading - AngularFire dynamically imports much of Firebase, reducing time to load your app
- Deploy schematics - Get your Angular application deployed on Firebase Hosting with a single command
- Google Analytics - Zero-effort Angular Router awareness in Google Analytics
- Router Guards - Guard your Angular routes with built-in Firebase Authentication checks
import{provideFirebaseApp,getApp,initializeApp}from'@angular/fire/app';import{getFirestore,provideFirestore}from'@angular/fire/firestore';@NgModule({imports:[provideFirebaseApp(()=>initializeApp({ ...})),provideFirestore(()=>getFirestore()),], ...})exportclassAppModule{}
import{inject}from'@angular/core';import{Firestore,collectionData,collection}from'@angular/fire/firestore';import{Observable}from'rxjs';interfaceItem{name:string, ...};@Component({selector:'app-root',template:` <ul> <li *ngFor="let item of item$ | async"> {{ item.name }} </li> </ul> `})exportclassAppComponent{item$:Observable<Item[]>;firestore:Firestore=inject(Firestore);constructor(){constitemCollection=collection(this.firestore,'items');this.item$=collectionData(itemCollection);}}
AngularFire doesn't follow Angular's versioning as Firebase also has breaking changes throughout the year. Instead we try to maintain compatibility with both Firebase and Angular majors for as long as possible, only breaking when we need to support a new major of one or the other.
| Angular | Firebase | AngularFire |
|---|---|---|
| 16 | 9 | ^7.6 |
| 15 | 9 | ^7.5 |
| 14 | 9 | ^7.4 |
| 13 | 9 | ^7.2 |
| 12 | 9 | ^7.0 |
| 12 | 7,8 | ^6.1.5 |
| 11 | 7,8 | ^6.1 |
| 10 | 8 | ^6.0.4 |
| 10 | 7 | ^6.0.3 |
| 9 | 8 | ^6.0.4 |
| 9 | 7 | ^6.0 |
Version combinations not documented heremay work but are untested and you will see NPM peer warnings.
Neither AngularFire or Firebase ship with polyfills. To have compatability across as wide-range of environments we suggest the following polyfills be added to your application:
| API | Environments | Suggested Polyfill | License |
|---|---|---|---|
| Various ES5+ features | Safari < 10 | core-js/stable | MIT |
globalThis | Chrome < 71 Safari < 12.1 iOS < 12.2 Node < 12 | globalThis | MIT |
Proxy | Safari < 10 | proxy-polyfill | Apache 2.0 |
fetch | Safari < 10.1 iOS < 10.3 | cross-fetch | MIT |
Quickstart - Get your first application up and running by following our quickstart guide.
Stackblitz Template - Remember to set your Firebase configuration inapp/app.module.ts.
Upgrading to v7.0? Check out our guide.
We have three sample apps in this repository:
samples/compata kitchen sink application that demonstrates use of the "compatability" APIsamples/modulara kitchen sink application that demonstrates the new tree-shakable APIsamples/advancedthe same app assamples/modularbut demonstrates more advanced concepts such as Angular Universal state-transfer, dynamically importing Firebase feature modules, and Firestore data bundling.
Get help on ourQ&A board, the officialFirebase Mailing List, theFirebase Community Slack (#angularfire2), theAngular Community Discord (#firebase),Gitter, theFirebase subreddit, orStack Overflow.
NOTE: AngularFire is maintained by Googlers but is not a supported Firebase product. Questions on the mailing list and issues filed here are answered on abest-effort basis by maintainers and other community members. If you are able to reproduce a problem with Firebaseoutside of AngularFire's implementation, pleasefile an issue on the Firebase JS SDK or reach out to the personalizedFirebase support channel.
This developer guide assimes you're using the new tree-shakable AngularFire API,if you're looking for the compatability API you can find the documentation here.
See the v7 upgrade guide for more information on this change..
import{}from'@angular/fire/analytics'; | import{}from'@angular/fire/auth'; |
import{}from'@angular/fire/firestore'; | import{}from'@angular/fire/functions'; |
import{}from'@angular/fire/messaging'; | import{}from'@angular/fire/storage'; |
import{}from'@angular/fire/performance'; | import{}from'@angular/fire/database'; |
import{}from'@angular/fire/remote-config'; | import{}from'@angular/fire/app-check'; |
- Deploy to Firebase Hosting
- Angular Universal: Deploy to Cloud Functions
- Angular Universal: Deploy to Cloud Run
About
Angular + Firebase = ❤️
Topics
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.