6.0.0-rc.1 (2020-02-06)
Continued work on version 6.
- Brought a fix in
5.4.2
(#2315) - Fixed
@angular/fire/analytics
attempting to useglobal
(#2303) - Fix the error message on storage (#2313)
- Starting on documentation for 6.0
6.0.0-rc.0 (2020-01-30)
Version 6 of AngularFire drops support for Angular version 8 and below, older versions of typescript, Firebase, drops firebase-node
, database-deprecated
, and more.
- Support for Angular versions less than 9 has been dropped
- Support for Firebase versions less than 7.8 has been dropped
- Support for
firebase-tools
less than 7.12 has been dropped angularfire2
NPM shim will no longer be updated- Dropped
@angular/fire/firebase-node
and@angular/fire/database-depreciated
- Using
ng-packagr
to build the library, bringing us back up to speed on APF - All of our
@NgModules
are nowprovidedIn: 'any'
rather than singletons - We make use of Proxy in more modules, you'll need to polyfill if you want to support IE 11
- Dropped the
RealtimeDatabaseURL
andDATABASE_URL
DI tokens, useimport { URL } from '@angular/fire/database'
instead - Dropped
runOutsideAngular
,runInZone
,FirebaseZoneScheduler
, and theFirebase*
type aliases
AngularFireAnalytics
now memoziesanalytics.Analtyics
instances keyed to themeasurementId
, this prevents exceptions if you're using more than oneFirebaseApp
with the samemeasurementId
. This is also needed as we areprovidedIn: 'any'
.
AngularFireAuthModule
is now side-effect free andAngularFireAuth
will dynamically importfirebase/auth
when a request is madeAngularFireAuth
has dropped theauth
property and instead Promise Proxies the underlying Firebaseauth.Auth
instance
AngularFireAuthGuard
andcanActivate
have dropped (attempted) support for rawAuthPipe
s, as they were not functioning in AOT builds; you'll want to move toAuthPipeGenerator
s
AngularFireDatabaseModule
no longer importsfirebase/database
on it's own to remain side-effect free, you'll need toimport 'firebase/database'
on your own- Dropped the
RealtimeDatabaseURL
andDATABASE_URL
DI tokens in favor ofURL
AngularFirestoreModule
no longer importsfirebase/firestore
on it's own to remain side-effect free, you'll need toimport 'firebase/firestore'
on your own- Dropped the
EnablePersistenceToken
DI token in favor ofENABLE_PERSISTENCE
- Dropped the
PersistenceSettingsToken
DI token in favor ofPERSISTENCE_SETTINGS
- Dropped the
FirestoreSettingsToken
DI token in favor ofSETTINGS
- Dropped the
FunctionsRegionToken
andFUNCTIONS_REGION
DI tokens in favor ofREGION
- Dropped the
FUNCTIONS_ORIGIN
DI token in favor ofORIGIN
AngularFireFunctionsModule
is now side-effect free andAngularFireFunctions
will dynamically importfirebase/functions
when a request is madeAngularFireFunctions
has dropped thefunctions
property and instead Promise Proxies the underlying Firebasefunctions.Functions
instance
AngularFireMessaging
's dynamic import offirebase/messaging
is now lazy, if you don't call any methods the SDK will not be loadedAngularFireMessaging
has dropped themessaging
property and instead Promise Proxies the underlying Firebasemessaging.Messaging
instance
AngularFirePerformance
has dropped theperformance
property and instead Promise Proxies the underlying Firebaseperformance.Performance
instance
AngularFireStorageModule
no longer importsfirebase/storage
on it's own to remain side-effect free, you'll need toimport 'firebase/storage'
on your own- Dropped
StorageBucket
DI token in favor ofBUCKET
5.4.2 (2020-02-06)
5.4.1 (2020-02-05)
5.4.0 (2020-02-01)
- core: Register AngularFire and Angular versions with the JS SDK (6096c95)
- ng-deploy: add option for buildTarget (#2281) (28a4e54)
- core: Major changes to the Zone.js wrapping to address SSR memory leaks and more (#2294) (56df941)
5.3.1 (2020-02-01)
- schematics: The schematics should be functional again. The version of
firebase-tools
we were installing when you calledng add @angular/fire
was using deprecated API. (#2285) (5867eeb) - schematics: fix issues with FS and Devkit Paths (#2279) (5ccf5db)
- rc: Need to
ensureInitialized()
(#2290) (0d95523)
5.3.0 (2020-01-07)
AngularFire 5.3 introduces Analytics and Remote Config modules.
5.2.3 (2019-11-12)
- build: Make the build work on windows (#2231) (97d8532)
- core: Support Firebase 7 peer and fix zone instabilities with
AngularFirePerformanceModule
and the injectableFirebaseApp
(#2240) (60fd575) - rtdb: Allow update to take "Partial" (#2169) (ca43c8b)
5.2.2 (2019-11-12)
5.2.2
was mistakenly released to @canary
due to a CI/CD bug. It was republished to @latest
as 5.2.3
.
5.2.1 (2019-06-01)
Removed unnecessary peerDependencies
(#2095) (5e49442)
5.2.0 (2019-05-31)
AngularFire 5.2 introduces support for Angular 8 and version 6 of the Firebase SDK.
- firestore: Fix for builds targeting Node (#2079) (8a33826)
- storage: Typo in updateMetadata method (#2029) (6133296)
- messaging: Allow
AngularFireMessaging
to be included in a server build (#1938) (9b870a9)
- performance: AngularFire Performance Monitoring (#2064) (2469e77)
- auth-guard: AngularFire Auth Guards (#2016) (e32164d)
- firestore: Added option to include document IDs on valueChanges() (#1976) (7108875)
- firestore: Support Firestore Collection Group Queries (#2066) (c34c0f3)
- functions: Allow configuration of Functions Emulator Origin (#2017) (d12b4c5)
- schematics: ng deploy schematic (#2046) (be0a1fb)
- firestore: path on
AngularFirestoreCollection
's.doc
is optional (#1974) (c2354f8)
5.1.2 (2019-03-11)
- afs: No longer pull in the depreciated timestampsInSnapshots setting for Firebase 5.8 (#2013) (5df31c3)
5.1.1 (2018-11-29)
5.1.0 (2018-10-17)
- core: Support Angular 7 without peer dependency warnings (ed92c45)
- afs: Support Firebase 5.5 and Firestore PersistenceSettings (a9cf1ca)
- functions: Support region configuration via
FunctionsRegionToken
(8901617)
5.0.2 (2018-09-21)
- messaging: Fix for the binding issue and onTokenRefresh for Messaging (e170da1)
5.0.1 (2018-09-07)
Version 5.0.1 has been released for the deprecated angularfire2
NPM library; this simply re-exports everything from @angular/fire
; allowing you to use either angularfire2
or @angular/fire
in your imports and package.json
.
It will have it's dependency pinned to the corresponding minor and will be released alongside future @angular/fire
releases for the rest of the 5.x series.
5.0.0 (2018-09-04)
- firestore: Better handle enablePersistence failures, esp. for Universal (#1850) (334ba7b)
- firestore: Add document
get()
, the options argument forget()
should be optional, and subscriptions toget()
should be run in the Angular Zone(#1849) (185943f)
5.0 is now final and we're published under @angular/fire
.
npm i --save firebase @angular/fire
5.0.0-rc.12 (2018-08-24)
- afs: Gracefully handle duplicate emissions on modified/deleted (#1825) (76ff6c1)
- core: If an AngularFire observable was empty or threw, it could block Universal rendering (#1832) (36a8ff8)
- core: Fix for the Firebase ES export problems in Node (#1821) (f1014ee)
- storage: Fix for zone issues on downloadURL and metadata, which blocked Universal rendering (#1835) (441607a)
- firestore: Added a
get
Observable (#1824) (9f34be8) - messaging: Introducing AngularFireMessaging (#1749) (26f7613)
5.0.0-rc.11 (2018-06-13)
5.0.0-rc.10 (2018-05-22)
- firestore: the type passed to
AngularFirestoreCollection
from a document's sub-collection will now default toDocumentData
, rather thanany
, if no type is specified (#1662) (2c2fe02)
- core: AngularFire now depends only on the
firebase
NPM library, rather than@firebase/*
and@firebase/*-types
; this should simplify issues around keeping types in-sync and conflicts between package versions (#1677) (2c2fe02)
5.0.0-rc.9 (2018-05-16)
- core: allow initializeApp to be used with AOT (#1654) (513565a)
- core: Allow name + config deps to be optional (#1641) (a6af604)
- firestore: Fixed a bug where Firestore sub-collections were inheriting the type of the doc by default (#1644) (dff8ddf)
- auth: Adding user and idTokenResult Observables to AngularFireAuth (#1642) (31045a9)
- functions: Adding AngularFireFunctions with httpCallable (#1532) (26f3f5f)
- firestore: types for collection, audit trail, state, and snapshot changes (#1644) (dff8ddf)
- rtdb: types for collection, audit trail, snapshot, and state changes (#1643) (2c2fe02)
- To deal with the initializeApp not being able to be used in AOT (#1635) we removed
FirebaseAppConfigToken
andFirebaseAppNameToken
and replaced them with a newFirebaseNameOrConfigToken
which accepts either an app name string or aFirebaseAppConfig
object. (#1654) (513565a) - firestore: If you do not specify a type to Document or Collection the default is now
DocumentData
(#1644) (dff8ddf)
5.0.0-rc.8 (2018-05-12)
- Supporting Angular and rxjs 6 (dd4a36c)
- Support Firebase JS SDK 5.0 (#1628) (b99bfa3)
- Support FirebaseAppConfig, clean up injection tokens (#1627) (57906bd)
- firestore: Support Firestore Settings, timestampsInSnapshots default to true (#1629) (570c0a7)
- auth: Update to rxjs pipeable operators (#1621) (0c3b215)
- core: Update to rxjs pipeable operators (#1620) (3fbbb7d)
- database: Update to rxjs pipeable operators (#1622) (5c3681d)
- firestore: Update to rxjs pipeable operators (#1623) (97b26e3)
- storage: Update to rxjs pipeable operators (#1624) (014be21)
- Due to the addition of a conflicting
FirebaseAppConfig
interface in Firebase 4.13 we've now changed ourFirebaseAppConfig
Injection Token to beFirebaseOptionsToken
- For consistency the
FirebaseAppName
Injection Token is nowFirebaseAppNameToken
- rxjs 5 is no longer supported, upgrade to 6 (see the rxjs migration guide for more information)
- Firebase JS SDK 4.x is no longer supported, upgrade to 5 (see the changelog for more information)
- To mirror a change in Firebase 5.x,
downloadURL
was removed fromAngularFireUploadTask
- Some users may experience failures compiling AOT while using
AngularFireModule.initializeApp(...)
, a work-around is available (see #1635)
5.0.0-rc.7 (2018-05-04)
- afs: workarounds for bugs in the Firebase JS SDK #605 and #608 (#1540) (14e78ec)
- app: add automaticDataCollectionEnabled for compatability with Firebase JS SDK v4.13+ (#1572) (f2cf159)
- firestore: allow collection and doc from ref (#1487) (136f1e5), closes #1337
runOutsideAngular
for Universal / service worker compatability and allow advanced configuration with DI (#1454) (e343f13)
5.0.0-rc.6 (2018-01-26)
- Migrate imports to new Typings from 4.8.1 to resolve #1385 (7ec51b2)
- Removing errant old import. Updating build with latest namespace. Fixing import for main @firebase/app. This resolves failing tests. (a13bf9b)
- afs: fix di warning (#1401) (23ab383)
- afs/typings: valueChanges should return Observable<T|null> (#1321) (aadc71a)
- storage: Add Cloud Storage support (e2283b1)
5.0.0-rc.4 (2017-11-17)
- afs: added missing type to doc() (#1286) (3e00e16)
- afs: allow document set options (#1333) (81018ed), closes #1332
- afs: catch error when enabling persistence (#1300) (61245a3)
- afs: export interfaces (#1277) (4a21857)
- db: inherit generics in valueChanges interface (10afd64), closes #1214
- db: update should take a Partial object (#1330) (20e66f5), closes #1329
5.0.0-rc.3 (2017-10-14)
- afs: change doc.update() parameter type to Partial (#1247) (297cabb), closes #1245 #1215
- rtdb: Fixed null set handling, ordering, and cleaned up types (#1264) (eda1c41)
5.0.0-rc.2 (2017-10-05)
- afs: Allow multiple subscribers by using share, closes #1191 (#1192) (21522ab)
- afs: Don't filter empty changes (allow for null set) (eb71edc)
- afs: remove debugger statement from collection/changes.ts (#1190) (88a25e7)
- auth: Clean up the authentication module (8ab3803)
5.0.0-rc.0 (2017-10-03)
- AngularFirestore: Module for Cloud Firestore (90c8ede)
- New AngularFireDatabase API: New API for the database #1158
AngularFire 5.0 brings a new API for the Realtime Database. See the migration doc for converting to the new API. If you want to stay on the old database API you can use:
import { AngularFireModule } from 'angularfire2/database-deprecated';
4.0.0-rc.1 (2017-06-02)
- rc: Update to Firebase JS SDK 4.0 (9642f5)
In version 4.0 of the Firebase SDK onAuthStateChanged
is only fired on sign-in and sign-out, see the Firebase JS SDK changelog for more information. The added AngularFireAuth.idToken: Observable<firebase.User>
behaves as authState
used to.
4.0.0-rc0 (2017-05-02)
- auth: Use the injected app (980c447)
- build: Add package.json files for deep paths (cd5f2d1), closes #880
- database: Fix test TypeScript errors (750737c), closes #875
- database: use switchMap when a list's query changes (#831) (b85147d), closes #830
- auth: New Auth API (12aa422)
- database: Add AngularFireDatabaseModule (b388627)
- database: support optional endAt/equalTo key (#838) (e146492), closes #837
- rc: Implement rc0 API (398e4e2)
2.0.0-beta.8 (2017-02-16)
- database: allow null values for equalTo, etc. (#809) (561e7b7)
- database: call apply instead of call (7a85bd2)
- database: retrieve initial list content once (#820) (5c5ff7b), closes #819
- database: store unwrapped snapshots (9f3c47b), closes #791
- utils: Make object $key and $exists properties non-enumerable (253401f)
- utils: Minor formatting improvement (fc3774a)
- database: adds auditTime for queries (f9cb5c3), closes #389 #770
- database: support the optional startAt key (#821) (c469b11)
2.0.0-beta.7 (2017-01-13)
- auth: Remove
FirebaseAuth
in favor ofAngularFireAuth
. ([d422e6])(https://github.com/angular/angularfire2/commit/d422e62b46a80d9fb12c9a9e2cf1cf2f7db04dd3)
- aot: Remove AuthBackend param for AOT support (f875360)
- auth_backend: Update logout method to return a promise (169ce64), closes #583
- config: Add messagingSenderId to FirebaseAppConfig (9c84869)
- database: Allow null values for equalTo, etc. (70a3e94), closes #704
- database: Removed unused query option (9cbc59b), closes #706
- list: Fix FirebaseListObservable emit as array bug #574 (ce3de04)
- module: Conditionally pass app name (8427009)
- module: Add a custom FirebaseApp name (73a3e26)
2.0.0-beta.6-preview (2016-11-02)
- Database: use Zone scheduler for object and list factories (e18da0e), closes #637
- AoT: change constructor param interface type annotation to any (2c0a57f)
- build: Fix npm test and test:watch commands for windows (86b4b24), closes #217
- database: Add $ref to observables (#447) (a53fac0), closes #294
- imports: add firebase imports to all places that reference firebase namespace (c3a954c), closes #525
- docs: Add AoT installation and setup (#546) (7c20d13)
- docs: update installation guide to latest cli version (#519) (648666f)
- hmr: Add Hot module reloading (c32a008)
A TypeScript issue with the previous release has been fixed, where errors about a missing firebase
namespace were reported. For
applications that worked around this issue by manually adding the firebase.d.ts
typings to tsconfig.json
, those typings
should now be removed since the firebase namespace should automatically be resolved within AngularFire.
See this issue for more context.
2.0.0-beta.5 (2016-09-15)
- docs: Remove @next install (5984a99)
- docs: typos (197026a)
- docs: Update for beta.4 (f2d5ba5)
- docs: Update for beta.4 (b347e16)
- firebase_*_factory.js: Fix calls to off() which inadvertently cancel all listeners on the path (#469) (b4fb281), closes #443
- package: Version number (986685a)
The way this project is packaged has changed to be consistent with other Angular packages. Previously:
- The project just consisted of CommonJS modules, with
angularfire2.js
as the main entry point. - The project provided an
es6
directory which contained es2015 modules and es2015 JS - Package.json included
main
andjsnext:main
fields, pointing toangularfire2.js
andes6/angularfire2.js
, respectively.
Now:
- The project ships ES2015 modules with ES5 JS at the root, as well as an ES5 UMD bundle at
bundles/angulafire2.umd.js
- The
main
field ofpackage.json
points tobundles/angularfire2.umd.js
. - Instead of
jsnext:main
, we're using themodule
field of package.json to point toindex.js
. - Instead of
angularfire2.js
being the main entry point, anindex.js
has been added (though angulafire2.js hasn't changed significantly).
If you're using Rollup or Webpack, they should just work with this new setup (please open issues if not). If using SystemJS, you should be able to
add format: 'esm'
inside of the packages configuration, and it should load and parse the es2015 modules correctly.
The addition of the umd bundle will also make it possible to use AngularFire2 in a <script>
tag, such as in a plunker or JSBin. The library is
exported on a global called angularFire2
.
2.0.0-beta.4 (2016-08-22)
- auth: add scheduler to schedule onAuth events through Angular zone (#368) (3615318), closes #354
- auth: Auth config for initializeApp (#428) (a2ee25d)
- auth: check protocol before calling getRedirectResult (#271) (f38e9d7), closes #243
- auth: make statically analyzable x2 (#427) (ab80954)
- auth: providerData issue (#420) (1ebb726)
- list: FirebaseListObservable shape (#321) (35e8583)
- providers: make AoT compile friendly (#410) (6219ac1)
- docs: Docs for RC5 (9870a7f)
- Previously, es modules were published to the es6/ directory inside the npm package. This change publishes them to the esm directory to be consistent with other angular packages. Currently, the es6 directory is still published in the npm package, but will be removed in a future release.
- auth: The AngularFireAuth class has changed the order of its constructor arguments.
Since this is usually instantiated automatically via dependency injection,
it shouldn't affect common usage of the library. However, if manually
instantiating AngularFireAuth in tests or in an application, the order of
arguments is now:
(AuthBackend, WindowLocation[, AuthConfiguration])
.
2.0.0-beta.2 (2016-06-22)
- auth: check for null user before attempting to transform (981f0f5), closes #251
- auth: correctly emit anonymous auth state (51c8caa)
- auth: make sure onAuth runs in Angular zone (d9a6ae7), closes #231
- build: downgrade to stable TS version to fix d.ts (664a156), closes #250
This release updates AngularFire to the Firebase 3 SDK. There are a few breaking changes, most notably in how apps are configured, and how third-party oauth tokens are handled.
- Upgrade to the Firebase 3.0+ SDK, versions less than 3.0 are not supported. abe11a2
defaultFirebase
takes in a configuration object rather than a database url string. See docs for more info.- Access tokens for third party auth (github, google, facebook, twitter) are not persisted after refresh.
- FirebaseListFactory: prevent first item being duplicated when it Commit
- Many Developer guides added! First Guide Commit
- Web Worker support has been temporarily removed due to Angular 2 RC.0 not yet supporting Web Workers