René's URL Explorer Experiment


Title: Adding AngularFireAnalytics, AngularFireRemoteConfig, and refactoring DI Tokens by jamesdaniels · Pull Request #2187 · angular/angularfire · GitHub

Open Graph Title: Adding AngularFireAnalytics, AngularFireRemoteConfig, and refactoring DI Tokens by jamesdaniels · Pull Request #2187 · angular/angularfire

X Title: Adding AngularFireAnalytics, AngularFireRemoteConfig, and refactoring DI Tokens by jamesdaniels · Pull Request #2187 · angular/angularfire

Description: Adding support for Firebase v7 added in 5.2.3 Adding AngularFireAnalytics and AngularFireRemoteConfig modules AddingScreenTrackingService and UserTrackingService which operate in conjunction with AngularFireAnalytics to track screen views and user identifiers respectively Cleaning up the injection token naming patterns, for semver they are aliases to the old ones TODO: address the Zone.js issues introduced rethink the Remote Config API, not in love test coverage docs add startWith support to AngularFireRemoteConfig export filterRemote(), filterFresh(), etc. pipes in @angular/fire/remote-config add distinctUntilChanged with a custom compare function to AngularFireRemoteConfig export Value as implements Partial in the .d.ts, so we don't break on minors generally clean up the types in RC fix the types if you are running older Firebase (this will make travis happy again) implement more of the router types in analytics (perhaps stop using _loadedConfig...) continue to test the robustness of analytics expand the test coverage fix the proxy in the SSR environment AngularFire "Lazy" Both AngularFireAnalytics and AngularFireRemoteConfig are of a design @davideast and I have been thinking about for a while; that we've been calling "AngularFire Lazy". These modules not only provide convenience observables and integrations with Angular, they also lazily load their respective Firebase modules and proxy the Firebase SDK (accounting for the aforementioned lazy-loading) and patch Zone.js. This allows you to use all of the methods available on the Firebase SDK while knowing that AngularFire has addressed Angular-compatibility. The only major difference is that anything in the vanilla Firebase SDK that isn't a promise now is. The use of a proxy means that we should not need to add support for new additions to the Firebase SDK for you to take advantage. Your feedback is wanted! We'll be bringing similar capabilities to the other modules in future releases 😄 @angular/fire/analytics AngularFireAnalyticsModule Provides AngularFireAnalytics and initializes ScreenTrackingService and UserTrackingService, if they were loaded. AngularFireAnalytics Lazy loads firebase/analytics and proxies firebase.analytics(). APP_VERSION and APP_NAME will be loaded into the Google Analytics, if they are provided. API updateConfig(options: {[key:string]: any}): Promise; // from firebase.analytics() proxy: logEvent(eventName: string, eventParams?: {[key: string]: any}, options?: analytics.AnalyticsCallOptions): Promise; setCurrentScreen(screenName: string, options?: analytics.AnalyticsCallOptions): Promise; setUserId(id: string, options?: analytics.AnalyticsCallOptions): Promise; setUserProperties(properties: analytics.CustomParams, options?: analytics.AnalyticsCallOptions): Promise; setAnalyticsCollectionEnabled(enabled: boolean): Promise; app: Promise; DI ANALYTICS_COLLECTION_ENABLED: boolean Globally disable Google Analytics collection by setting this to false. (default: true) APP_VERSION: string The application version to pass to Google Analytics. APP_NAME: string The application name to pass to Google Analytics. DEBUG_MODE: boolean Start Google Analytics in debug mode, so you can test your events in DebugView in the Firebase Console. (default: false) Also takes FIREBASE_OPTIONS and FIREBASE_APP_NAME like all other Modules. Usage @NgModule({ imports: [ AngularFireModule.initializeApp(environment.firebase), AngularFireAnalyticsModule ], providers: [ ScreenTrackingService, UserTrackingService, { provide: DEBUG_MODE, useFactory: isDevMode }, { provide: APP_NAME, useValue: 'my awesome web app' }, { provide: APP_VERSION, useValue: '0.0.0 (707e803)'} ] }) export class AppModule { } ... constructor(analytics: AngularFireAnalytics) { analytics.logEvent('custom_event', { ... }).then(() => { ... }); } ScreenTrackingService Logs screen views and tracks the current screen on Router NavigationEnd events. UserTrackingService Tracks the user's uid, if firebase/auth is loaded. @angular/fire/remote-config AngularFireRemoteConfigModule Provides AngularFireRemoteConfig AngularFireRemoteConfig Lazy loads firebase/remote-config, proxies firebase.remoteConfig(), and provides convenience observables & pipes for working with Remote Config. API interface ConfigTemplate {[key:string]: string|number|boolean} type Parameter extends remoteConfig.Value { key: string, fetchTimeMillis: number } class AngularFireRemoteConfig { changes: Observable; parameters: Observable; numbers: Observable<{[key:string]: number|undefined}> & {[key:string]: Observable}; booleans: Observable<{[key:string]: boolean|undefined}> & {[key:string]: Observable}; strings: Observable<{[key:string]: string|undefined}> & {[key:string]: Observable}; // from firebase.remoteConfig() proxy: activate: () => Promise; ensureInitialized: () => Promise; fetch: () => Promise; fetchAndActivate: () => Promise; getAll: () => Promise<{[key:string]: remoteConfig.Value}>; getBoolean: (key:string) => Promise; getNumber: (key:string) => Promise; getString: (key:string) => Promise; getValue: (key:string) => Promise; setLogLevel: (logLevel: remoteConfig.LogLevel) => Promise; settings: Promise; defaultConfig: Promise<{[key: string]: string | number | boolean}>; fetchTimeMillis: Promise; lastFetchStatus: Promise; } // Pipes for working with .changes and .parameters filterRemote: () => MonoTypeOperatorFunction filterFresh: (interval: number) => MonoTypeOperatorFunction budget: (interval: number) => MonoTypeOperatorFunction // map and scanToObject have several overloads // scanToObject is for use with .changes scanToObject: () => OperatorFunction // mapToObject is the same behavior are scanToObject but for use with .parameters, mapToObject: () => OperatorFunction DI DEFAULT_CONFIG: {[key:string]: string|number|boolean} Provide default values for Remote Config REMOTE_CONFIG_SETTINGS: remoteConfig.Settings Configure your remote config instance Also takes FIREBASE_OPTIONS and FIREBASE_APP_NAME like all other Modules. Usage @NgModule({ imports: [ AngularFireModule.initializeApp(environment.firebase), AngularFireRemoteConfigModule ], providers: [ { provide: DEFAULT_CONFIG, useValue: { enableAwesome: true } }, { provide: REMOTE_CONFIG_SETTINGS, useFactory: () => isDevMode() ? { minimumFetchIntervalMillis: 1 } : {} } ] }) export class AppModule { } ... constructor(remoteConfig: AngularFireRemoteConfig) { remoteConfig.changes.pipe( filterFresh(172_800_000), // ensure we have values from at least 48 hours ago first(), // scanToObject when used this way is similar to defaults // but most importantly smart-casts remote config values and adds type safety scanToObject({ enableAwesome: true, titleBackgroundColor: 'blue', titleFontSize: 12 }) ).subscribe(…); // all remote config values cast as strings remoteConfig.strings.subscribe(...) remoteConfig.booleans.subscribe(...); // as booleans remoteConfig.numbers.subscribe(...); // as numbers // convenience for observing a single string remoteConfig.strings.titleBackgroundColor.subscribe(...); remoteConfig.booleans.enableAwesome.subscribe(...); // boolean remoteConfig.numbers.titleBackgroundColor.subscribe(...); // number // however those may emit more than once as the remote config cache fires and gets fresh values from the server // you can filter it out of .changes for more control: remoteConfig.changes.pipe( filter(param => param.key === 'titleBackgroundColor'), map(param => param.asString()) // budget at most 800ms and return the freshest value possible in that time // our budget pipe is similar to timeout but won't error or abort the pending server fetch (it won't emit it, if the deadline is exceeded, but it will have been fetched so can use the freshest values on next subscription) budget(800), last() ).subscribe(...) // just like .changes, but scanned as into an array remoteConfig.parameters.subscribe(all => ...); // or make promisified firebase().remoteConfig() calls direct off AngularFireRemoteConfig // using our proxy remoteConfig.getAll().then(all => ...); remoteConfig.lastFetchStatus.then(status => ...); }

Open Graph Description: Adding support for Firebase v7 added in 5.2.3 Adding AngularFireAnalytics and AngularFireRemoteConfig modules AddingScreenTrackingService and UserTrackingService which operate in conjunction with A...

X Description: Adding support for Firebase v7 added in 5.2.3 Adding AngularFireAnalytics and AngularFireRemoteConfig modules AddingScreenTrackingService and UserTrackingService which operate in conjunction with A...

Opengraph URL: https://github.com/angular/angularfire/pull/2187

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:08c32212-1b25-fc1b-325b-5e19f22f4b90
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idE7D4:1F57A1:D4CE9:11A08F:6A5B1536
html-safe-noncec342f915dfcb3932a9fed62cdd3e09f2b311f89e222426ac8d2a6e569f27446c
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFN0Q0OjFGNTdBMTpENENFOToxMUEwOEY6NkE1QjE1MzYiLCJ2aXNpdG9yX2lkIjoiODE3MzQ3MTUxMzY3NDcxNjQ3MCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmac0683ce24372cad5520435cc52152123ef8781876dec8b57a62868f9af00715e4
hovercard-subject-tagpull_request:323943439
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/angular/angularfire/pull/2187/files
twitter:imagehttps://avatars.githubusercontent.com/u/44975?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/44975?s=400&v=4
og:image:altAdding support for Firebase v7 added in 5.2.3 Adding AngularFireAnalytics and AngularFireRemoteConfig modules AddingScreenTrackingService and UserTrackingService which operate in conjunction with A...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None5290d7e14309ad1e76106a9c4237bd1041517e83ea182c8ab756752cb0c6940b
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/angular/angularfire git https://github.com/angular/angularfire.git
octolytics-dimension-user_id139426
octolytics-dimension-user_loginangular
octolytics-dimension-repository_id49453413
octolytics-dimension-repository_nwoangular/angularfire
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id49453413
octolytics-dimension-repository_network_root_nwoangular/angularfire
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release9c975978430e9ad293956f2bbdaf153b1bd84a99
ui-targetcanary-1
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/angular/angularfire/pull/2187/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fangular%2Fangularfire%2Fpull%2F2187%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fangular%2Fangularfire%2Fpull%2F2187%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=angular%2Fangularfire
Reloadhttps://github.com/angular/angularfire/pull/2187/files
Reloadhttps://github.com/angular/angularfire/pull/2187/files
Reloadhttps://github.com/angular/angularfire/pull/2187/files
Please reload this pagehttps://github.com/angular/angularfire/pull/2187/files
angular https://github.com/angular
angularfirehttps://github.com/angular/angularfire
Notifications https://github.com/login?return_to=%2Fangular%2Fangularfire
Fork 2.2k https://github.com/login?return_to=%2Fangular%2Fangularfire
Star 7.8k https://github.com/login?return_to=%2Fangular%2Fangularfire
Code https://github.com/angular/angularfire
Issues 294 https://github.com/angular/angularfire/issues
Pull requests 20 https://github.com/angular/angularfire/pulls
Discussions https://github.com/angular/angularfire/discussions
Actions https://github.com/angular/angularfire/actions
Projects https://github.com/angular/angularfire/projects
Security and quality 0 https://github.com/angular/angularfire/security
Insights https://github.com/angular/angularfire/pulse
Code https://github.com/angular/angularfire
Issues https://github.com/angular/angularfire/issues
Pull requests https://github.com/angular/angularfire/pulls
Discussions https://github.com/angular/angularfire/discussions
Actions https://github.com/angular/angularfire/actions
Projects https://github.com/angular/angularfire/projects
Security and quality https://github.com/angular/angularfire/security
Insights https://github.com/angular/angularfire/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fangular%2Fangularfire%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fangular%2Fangularfire%2Fissues%2Fnew%2Fchoose
jamesdanielshttps://github.com/jamesdaniels
masterhttps://github.com/angular/angularfire/tree/master
firebase-v7https://github.com/angular/angularfire/tree/firebase-v7
Conversation 59 https://github.com/angular/angularfire/pull/2187
Commits 41 https://github.com/angular/angularfire/pull/2187/commits
Checks 0 https://github.com/angular/angularfire/pull/2187/checks
Files changed https://github.com/angular/angularfire/pull/2187/files
Please reload this pagehttps://github.com/angular/angularfire/pull/2187/files
Adding AngularFireAnalytics, AngularFireRemoteConfig, and refactoring DI Tokens https://github.com/angular/angularfire/pull/2187/files#top
Show all changes 41 commits https://github.com/angular/angularfire/pull/2187/files
e5be927 Firebase v7, analytics and remote-config jamesdaniels Oct 2, 2019 https://github.com/angular/angularfire/pull/2187/commits/e5be92725ddf18665e308deb6eaae5b8d023bdc3
1cf961b Cleaning up the DI tokens jamesdaniels Oct 2, 2019 https://github.com/angular/angularfire/pull/2187/commits/1cf961bd2185c988916aa3741d7764a556d3a027
f5f67ad Cleaning things up jamesdaniels Oct 4, 2019 https://github.com/angular/angularfire/pull/2187/commits/f5f67adc1e264742f0952ef35e2fdae792eaf8a8
73413e8 DI and jazz jamesdaniels Oct 4, 2019 https://github.com/angular/angularfire/pull/2187/commits/73413e81906682ce54ced80b0447db6899499f08
dd0efb1 Bumping the tests jamesdaniels Nov 8, 2019 https://github.com/angular/angularfire/pull/2187/commits/dd0efb11976d3ec91b293c28c889d41a0a69a588
dffca53 Adding to the root-spec jamesdaniels Nov 9, 2019 https://github.com/angular/angularfire/pull/2187/commits/dffca53823d3bf2704bda8d49ccac84eed032a20
9731e3c Spelling is good. jamesdaniels Nov 9, 2019 https://github.com/angular/angularfire/pull/2187/commits/9731e3ce8392d7ce7ceeb396aa2417a13e26ff56
7308f9c Merge branch 'master' into firebase-v7 jamesdaniels Nov 9, 2019 https://github.com/angular/angularfire/pull/2187/commits/7308f9c87eeda761ac3b2dda45145e581e7f148e
dcdf8bc Have to include UMDs in the karma.conf jamesdaniels Nov 9, 2019 https://github.com/angular/angularfire/pull/2187/commits/dcdf8bcf3a52f42dfcbe20d63d8eb00aead2460a
6f71d46 Just importing performance is destablizing the app jamesdaniels Nov 11, 2019 https://github.com/angular/angularfire/pull/2187/commits/6f71d4639e7d36d29889fcfb62d805e08740fa06
6638b9d Merge branch 'master' into firebase-v7 jamesdaniels Nov 12, 2019 https://github.com/angular/angularfire/pull/2187/commits/6638b9d393fca20aaf303e0f0847df7ca3d6bea6
d7d52c8 Adding the zone arg to the app factory jamesdaniels Nov 12, 2019 https://github.com/angular/angularfire/pull/2187/commits/d7d52c8aad9f8730dc716b49e3145c2cd6eb0f42
eb4bc00 First pass on the new RC API and the start of the AngularFireLazy effort jamesdaniels Nov 13, 2019 https://github.com/angular/angularfire/pull/2187/commits/eb4bc00f223107660706b3711b47dfbf65b456a4
89344cc Update src/remote-config/tsconfig-test.json jamesdaniels Nov 14, 2019 https://github.com/angular/angularfire/pull/2187/commits/89344cc1cdb2c8c0b77f5a2d7fddae3206f29a93
075afe6 Reworking things a bit jamesdaniels Nov 20, 2019 https://github.com/angular/angularfire/pull/2187/commits/075afe66d4c75c336ca3f378b401909858c9ef24
b8b351a Router as optional, drop this/private from screen tracking jamesdaniels Nov 20, 2019 https://github.com/angular/angularfire/pull/2187/commits/b8b351ada6dff5d01dfd0ad0dda9f2338f3a6d5a
1e39052 Minor changes to RC jamesdaniels Nov 20, 2019 https://github.com/angular/angularfire/pull/2187/commits/1e39052a5ce22d8e5a3d2b91b85c3732d2d62c4f
768c21b It's firebase_screen_class jamesdaniels Nov 21, 2019 https://github.com/angular/angularfire/pull/2187/commits/768c21bc4b88ba83328c77a7f85bbc6759eb61fa
60c0cad Reworking analytics jamesdaniels Nov 22, 2019 https://github.com/angular/angularfire/pull/2187/commits/60c0cad0e8b15e614383bc57d7bd4e754e32d543
9b2e920 current! jamesdaniels Nov 22, 2019 https://github.com/angular/angularfire/pull/2187/commits/9b2e920969dd592c363f8e776cc64dc9544e8a47
916e069 Use _loadedConfig if available and scope screen_id on outlet jamesdaniels Nov 22, 2019 https://github.com/angular/angularfire/pull/2187/commits/916e069d20d5b2cf07cbf6da29fb178da15bb31f
5955925 Fixing the types to handle older Firebase SDKs jamesdaniels Nov 22, 2019 https://github.com/angular/angularfire/pull/2187/commits/5955925e305f1647e54cac939ea70248b7ead66b
659165e SEMVER notes on the DI tokens jamesdaniels Nov 22, 2019 https://github.com/angular/angularfire/pull/2187/commits/659165e3f04f4753a42de0ffe82388a4fd771e90
62d90b9 Starting on the docs jamesdaniels Nov 22, 2019 https://github.com/angular/angularfire/pull/2187/commits/62d90b919100f4086c27ce05230e42a47a3c6c05
1a43ad1 Merge branch 'firebase-v7' of github.com:angular/angularfire2 into fi… jamesdaniels Nov 22, 2019 https://github.com/angular/angularfire/pull/2187/commits/1a43ad1cc1fbfe95f6c9dbe0cf87433b3b6e5bc2
67e1b55 Monitoring... jamesdaniels Dec 9, 2019 https://github.com/angular/angularfire/pull/2187/commits/67e1b5561f906645dd51768bc6edec0680013509
91778ff More work on analytics jamesdaniels Dec 11, 2019 https://github.com/angular/angularfire/pull/2187/commits/91778ff414a82cc0a527b52fdfe90c0fba75c87b
460170c more expirimentation jamesdaniels Dec 12, 2019 https://github.com/angular/angularfire/pull/2187/commits/460170c997297eba73440a6cf71c2959717ee5bd
3c1ad1f Flushing out RC more and fixing SSR issues jamesdaniels Dec 14, 2019 https://github.com/angular/angularfire/pull/2187/commits/3c1ad1f349d0d1eb25d38e387f4f1fcfb9081f98
e2d83c8 New RC API jamesdaniels Dec 16, 2019 https://github.com/angular/angularfire/pull/2187/commits/e2d83c87669152b49abd8e063fce6b707d1b3dc8
4601932 Mapping to objects and templates, budget pipe jamesdaniels Dec 17, 2019 https://github.com/angular/angularfire/pull/2187/commits/4601932188ad1cb361c9e1957c42da84bde218b8
7fe92ed More strict types jamesdaniels Dec 17, 2019 https://github.com/angular/angularfire/pull/2187/commits/7fe92ed685e941f3bb4611ede89cd2ad63fecca5
d47dc3f Fix proxy in Node, get component name for analytics in both JIT and AOT jamesdaniels Dec 21, 2019 https://github.com/angular/angularfire/pull/2187/commits/d47dc3f8bfb093a6cd885226a1b4a79f4dc62120
05c840b Cleaning things up, beyond docs ready for release jamesdaniels Jan 7, 2020 https://github.com/angular/angularfire/pull/2187/commits/05c840bb5d6a8f0c3f82b279eaa40242d0a2f4ff
b46b382 Docs and cleanup jamesdaniels Jan 7, 2020 https://github.com/angular/angularfire/pull/2187/commits/b46b382cc44d867f21a29de0799d9000cb905075
ff65db8 Fixing analytics spec jamesdaniels Jan 7, 2020 https://github.com/angular/angularfire/pull/2187/commits/ff65db8584b0c6f92c890ed63cb8462911b0c645
baaeccf Adding more API to the docs jamesdaniels Jan 7, 2020 https://github.com/angular/angularfire/pull/2187/commits/baaeccfdbe61b63ec80c229adc3948bf1f7ba1ac
04a3bb1 Further simplifications to the DI tokens jamesdaniels Jan 7, 2020 https://github.com/angular/angularfire/pull/2187/commits/04a3bb15517417944eb772d1ba2386200b23087e
c37fcb7 Add Analytics and RemoteConfig to install-and-setup jamesdaniels Jan 7, 2020 https://github.com/angular/angularfire/pull/2187/commits/c37fcb79df5ee50f202259b3ab3c2eb56b5d3f94
6753a67 Merge branch 'master' into firebase-v7 jamesdaniels Jan 7, 2020 https://github.com/angular/angularfire/pull/2187/commits/6753a67df516012d215e8154b00d96bb1251641c
6f114c6 Our RC Value implements a Partial, so minors dont break jamesdaniels Jan 7, 2020 https://github.com/angular/angularfire/pull/2187/commits/6f114c60a55c8128163e6ac3f5279f6b6d484b5f
Clear filters https://github.com/angular/angularfire/pull/2187/files
Please reload this pagehttps://github.com/angular/angularfire/pull/2187/files
Please reload this pagehttps://github.com/angular/angularfire/pull/2187/files
README.md https://github.com/angular/angularfire/pull/2187/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
getting-started.md https://github.com/angular/angularfire/pull/2187/files#diff-15deaf7b949738682066d9146b1d03af92c4376c9136d826a2c151c46bab5bd6
install-and-setup.md https://github.com/angular/angularfire/pull/2187/files#diff-70728a44f408aaf005cff7035bf28d1480695b5bbab39b10ff8e34a7ec688464
getting-started.md https://github.com/angular/angularfire/pull/2187/files#diff-2fab93ecb0d967de98625b098a01cf167c4509dd0b4a5d6c2e0c53c806377913
karma.conf.js https://github.com/angular/angularfire/pull/2187/files#diff-25bdb46a5428d318648ec9eb46a99c0268d8c96b672c46e2247a685bc3e384fb
package.json https://github.com/angular/angularfire/pull/2187/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519
analytics.module.ts https://github.com/angular/angularfire/pull/2187/files#diff-fbba73b7e02d543872f4fa595b936120ca63041968ac213703b90435404721c6
analytics.service.ts https://github.com/angular/angularfire/pull/2187/files#diff-57462cafef10645b085d62aff98e3cec5449ee535722718bcc83576df10d0d37
analytics.spec.ts https://github.com/angular/angularfire/pull/2187/files#diff-664fce3feb490b4bcb455690f7e25c74a451e8ed3188b16b2487e750aad3debd
analytics.ts https://github.com/angular/angularfire/pull/2187/files#diff-7329a8575509b4a091b4ce98de75513eed217f7f2845e2b8ce9f1d05bfe95107
index.spec.ts https://github.com/angular/angularfire/pull/2187/files#diff-dd0a5df1d11a8326dc2b42f0a381e33f860d2e8f0a26c5da665c46e86f35a821
index.ts https://github.com/angular/angularfire/pull/2187/files#diff-adb1d298419b906dad2483550f89336108a282f90955f1a254497b572d53c3c7
package.json https://github.com/angular/angularfire/pull/2187/files#diff-750815c800ec47e35a55dd8a2bdbb98ebf299b1d0d15b44a4ba1114789dcfd78
public_api.ts https://github.com/angular/angularfire/pull/2187/files#diff-8457feea3a9add21dcfe92b12b4c1d77b12431367b378ebb80d419c6bb4f9ea9
test-config.ts https://github.com/angular/angularfire/pull/2187/files#diff-3e9bdf7f2764e9d5b456fd65613ac40f89ed6db815eb2c4a13d4eebae86f04f9
tsconfig-build.json https://github.com/angular/angularfire/pull/2187/files#diff-333a90870a49ad38333f7d5ba4ba356fa3a31944827f9aa9da1e0f916155a64a
tsconfig-esm.json https://github.com/angular/angularfire/pull/2187/files#diff-0086c9852be8e7968ed1c26a39c5ab02891f37d9a67c6a76c029656cb68b9380
tsconfig-test.json https://github.com/angular/angularfire/pull/2187/files#diff-2e18062c22e8c243d716bdf76bf3e72123a06cb9c447b78dcc138084dd142ab7
auth.ts https://github.com/angular/angularfire/pull/2187/files#diff-26c98c2ffc5924a448f8384c10793435c826bb2783eff1d4f866784c95575be5
angularfire2.ts https://github.com/angular/angularfire/pull/2187/files#diff-2ce7227e9f2284851cb129eee23823d15c9eb813f633cf608e58644946fb95f5
firebase.app.module.ts https://github.com/angular/angularfire/pull/2187/files#diff-cd381a6cda6e6fab7bf2e92f29fdd82bc585626248b8e047732fd261d79d4698
database.ts https://github.com/angular/angularfire/pull/2187/files#diff-a3f005422a1eb62d836a0dde50de63ada751f8ac197e3230fa0354ce4156cb9a
database.ts https://github.com/angular/angularfire/pull/2187/files#diff-6a5dc78be6bd854c429272a3618b932b42f80f59f5ba96e66e5c57cfdb373ac6
firestore.ts https://github.com/angular/angularfire/pull/2187/files#diff-ec64a9183f7464ddaec4f2be81cba3363b7357b6ef5e0f6426cca34d96b74e63
functions.ts https://github.com/angular/angularfire/pull/2187/files#diff-9bc8cd3cdc95031da5169382ca070d5714a3fb7b70dac54d55d718fae15e3954
messaging.spec.ts https://github.com/angular/angularfire/pull/2187/files#diff-1590ee093dbe63ad2f66273de17f7a26be62057316564ae5b8197b0f6d2d1227
messaging.ts https://github.com/angular/angularfire/pull/2187/files#diff-52075c4001f12262ff3842494a3fad6d61870ad2f207074865a732dd7673bdc2
tsconfig-test.json https://github.com/angular/angularfire/pull/2187/files#diff-4396e8ac2f0e71fe9e4b59faad5bc067c50a96960c8cb9bc125d479c8cf00d10
performance.ts https://github.com/angular/angularfire/pull/2187/files#diff-6a0eef263ae692e51fc4cc27de376aeda60accd9a1e99ed34ffcdd206c31bd64
index.spec.ts https://github.com/angular/angularfire/pull/2187/files#diff-9e55786de7adf91b6d25a071f012c29052464704e9085b3296b713b5f801c3d2
index.ts https://github.com/angular/angularfire/pull/2187/files#diff-7a5ca30096593988515a1569c2768048056d6d6cfe49f9fa3d8f1972bbe77c54
package.json https://github.com/angular/angularfire/pull/2187/files#diff-ef5b79f1d0ca63155ef0dd756e797f26859df8f5b8d19e5f47dbd90b1ec7812d
public_api.ts https://github.com/angular/angularfire/pull/2187/files#diff-d894705f2f6e255184333b782a42d6bfa04d5eb53a806ba2a318a126642b675f
remote-config.module.ts https://github.com/angular/angularfire/pull/2187/files#diff-2f3875aed2ab399c2e2156cdf23c0c93ce376b1aa05269b253b4c0c4a64fcec1
remote-config.spec.ts https://github.com/angular/angularfire/pull/2187/files#diff-71defa5f0e545472c1d602110feb01aa449ce2a4c9f5c53212329d685581dd38
remote-config.ts https://github.com/angular/angularfire/pull/2187/files#diff-e315df14bcf216e502abac834c7b9d5c346fd45c29d28f0966191a6ca1604339
test-config.ts https://github.com/angular/angularfire/pull/2187/files#diff-2f041b6c1cf204d9fac7bac8b3f3ad8d72eb5725047d78adb5d5f71be53faed7
tsconfig-build.json https://github.com/angular/angularfire/pull/2187/files#diff-6e4819416432d682461a948aa57174f3b8f318c0c1f2686a93586ccd59208876
tsconfig-esm.json https://github.com/angular/angularfire/pull/2187/files#diff-290647d862b1fc6e0246bef4fe8b48c03627bc5040883d470bcf25a302da6e3e
tsconfig-test.json https://github.com/angular/angularfire/pull/2187/files#diff-4255fb9a17bcf64c2e5158c03f3991680b6499293de1a54881afa5484a091c8d
root.spec.js https://github.com/angular/angularfire/pull/2187/files#diff-49327d3e995e3cbb641650241df8ac5317e93fa34b4e31acc8b62f35b9ce3cb2
storage.ts https://github.com/angular/angularfire/pull/2187/files#diff-0c35bbf7139461c1a7f14a041877ce83458e0f9a84892478ddeb8177ef2048b2
tsconfig.json https://github.com/angular/angularfire/pull/2187/files#diff-95914b3c221e1dbba96119f8305771d272ba5b18e9ea2549ad32dfd931cf0289
build.js https://github.com/angular/angularfire/pull/2187/files#diff-aa91570055ae52f8bba2787f7221b4b453f67a3b1916022ce8b3040fec8339e0
README.mdhttps://github.com/angular/angularfire/pull/2187/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
View file https://github.com/angular/angularfire/blob/6f114c60a55c8128163e6ac3f5279f6b6d484b5f/README.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/angular/angularfire/pull/2187/{{ revealButtonHref }}
https://github.com/angular/angularfire/pull/2187/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
https://github.com/angular/angularfire/pull/2187/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
https://github.com/angular/angularfire/pull/2187/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
https://github.com/angular/angularfire/pull/2187/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
docs/analytics/getting-started.mdhttps://github.com/angular/angularfire/pull/2187/files#diff-15deaf7b949738682066d9146b1d03af92c4376c9136d826a2c151c46bab5bd6
View file https://github.com/angular/angularfire/blob/6f114c60a55c8128163e6ac3f5279f6b6d484b5f/docs/analytics/getting-started.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/angular/angularfire/pull/2187/{{ revealButtonHref }}
docs/install-and-setup.mdhttps://github.com/angular/angularfire/pull/2187/files#diff-70728a44f408aaf005cff7035bf28d1480695b5bbab39b10ff8e34a7ec688464
View file https://github.com/angular/angularfire/blob/6f114c60a55c8128163e6ac3f5279f6b6d484b5f/docs/install-and-setup.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/angular/angularfire/pull/2187/{{ revealButtonHref }}
https://github.com/angular/angularfire/pull/2187/files#diff-70728a44f408aaf005cff7035bf28d1480695b5bbab39b10ff8e34a7ec688464
https://github.com/angular/angularfire/pull/2187/files#diff-70728a44f408aaf005cff7035bf28d1480695b5bbab39b10ff8e34a7ec688464
https://github.com/angular/angularfire/pull/2187/files#diff-70728a44f408aaf005cff7035bf28d1480695b5bbab39b10ff8e34a7ec688464
https://github.com/angular/angularfire/pull/2187/files#diff-70728a44f408aaf005cff7035bf28d1480695b5bbab39b10ff8e34a7ec688464
docs/remote-config/getting-started.mdhttps://github.com/angular/angularfire/pull/2187/files#diff-2fab93ecb0d967de98625b098a01cf167c4509dd0b4a5d6c2e0c53c806377913
View file https://github.com/angular/angularfire/blob/6f114c60a55c8128163e6ac3f5279f6b6d484b5f/docs/remote-config/getting-started.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/angular/angularfire/pull/2187/{{ revealButtonHref }}
karma.conf.jshttps://github.com/angular/angularfire/pull/2187/files#diff-25bdb46a5428d318648ec9eb46a99c0268d8c96b672c46e2247a685bc3e384fb
View file https://github.com/angular/angularfire/blob/6f114c60a55c8128163e6ac3f5279f6b6d484b5f/karma.conf.js
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/angular/angularfire/pull/2187/{{ revealButtonHref }}
https://github.com/angular/angularfire/pull/2187/files#diff-25bdb46a5428d318648ec9eb46a99c0268d8c96b672c46e2247a685bc3e384fb
https://github.com/angular/angularfire/pull/2187/files#diff-25bdb46a5428d318648ec9eb46a99c0268d8c96b672c46e2247a685bc3e384fb
package.jsonhttps://github.com/angular/angularfire/pull/2187/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519
View file https://github.com/angular/angularfire/blob/6f114c60a55c8128163e6ac3f5279f6b6d484b5f/package.json
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/angular/angularfire/pull/2187/{{ revealButtonHref }}
https://github.com/angular/angularfire/pull/2187/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519
src/analytics/analytics.module.tshttps://github.com/angular/angularfire/pull/2187/files#diff-fbba73b7e02d543872f4fa595b936120ca63041968ac213703b90435404721c6
View file https://github.com/angular/angularfire/blob/6f114c60a55c8128163e6ac3f5279f6b6d484b5f/src/analytics/analytics.module.ts
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/angular/angularfire/pull/2187/{{ revealButtonHref }}
Please reload this pagehttps://github.com/angular/angularfire/pull/2187/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.