-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Discussion: the road to AngularFire v6 #2267
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
@mgechev - Maybe add Cloud functions/run support for Angular ssr as part of ng deploy? |
@jamesdaniels, I'll be happy to push SSR support with Cloud functions (at first) as part of the next major release. Cloud functions seems like a good incremental rollout of a more complete & robust dynamic SSR solution. We're a step away from making deployments with pre-rendering generally available. As the next step, we can re-iterate on the dynamic SSR to optimize for cold start. WDYT? |
looks great! Better documentation on how to use the firebase emulator with angularfire, local database and firestore triggers would be nice too |
@vikerman @mgechev absolutely. In v6 too I'll change the default setup instructions to be @rubenheymans great point. I've been meaning to work on those docs also move our tests over to the emulator by default so they're less flaky (and we're dogfooding the emulator integrations). |
What is the current approach/timeline towards v6? I see there's one big PR here #2282. What I'm interested in the most right now is the change to Can we contribute in any way right now? |
Timeline is the rehaul commit going on master in the next day or two, which will mean canary builds on NPM. Helping test those builds against ng9 would be very helpful, as I’ll probably have too much on my plate to thoroughly dogfood before the first RC. |
FYI I've cut an initial build of version 6 on NPM |
Version 6 development is now happening on master. I'm writing the changelog entry now and will be cutting the first RC shortly. |
|
more documentation for multiple tenant apps and angularfire would be nice too. So every user has his own database/storage/auth, and a common project where can manage the tenants |
|
@hiepxanh https://cloud.google.com/identity-platform/docs/multi-tenancy-quickstart |
@rubenheymans , i saw in the docs that Firebase doesn't manage multi-tenancy. |
@rubenheymans the identity platform and firebase authentication do support multi-tenancy. However, Firestore does not offer the ability to create multiple databases in the same project. If you want to have multi-tenancy in an application with Firestore you would need to do it with your data model. The recommendation from the Google Cloud Docs has always been to use separate Projects for each client application "Tenant" - https://firebase.google.com/docs/projects/learn-more#multi-tenancy |
AngularFire's DI pattern supports linking to multiple apps, this will be a lot easier in 6.0 now that we're using "providedIn: any" will def write some more docs up on this. |
@jamesdaniels we store |
Not sur if it's too late or not, but I find the remote config documentation a little bit vague on some points:
Note that this is not a support request 😃 . I will solve my problems, but I must admit that documentation could be more detailed, with some examples. Thank you. |
HI everyone! Just a quick queston here: do we get closer to the v6 for AngularFire ? It'd be so great to be able to upgrade to Angular 9 with all the benefits of Ivy :)! |
Thanks I also found this solution and tried to implement this into my all but it's a bit difficult. I don't know how to programmatically manage all the different projects / customers. |
@rubenheymans I'm happy to provide you with a few scenarios to consider - each has its own pros and cons. Scenario 1. Single Project using Firebase Auth Multi-tenancy Scenario 2. Single project per tenant without hosting Scenario 3. Single project per tenant including hosting Here is a Workflow you can use for Scenarios 2 and 3 I hope the information helps. |
@puchesjr Thanks! I started with the first solution before, but I did not really like it. The second solution is perfect for my case, I found this on stackoverflow too, and it's this solution I'm trying to implement. |
Hey there! Seriously, where are we with the v6 ? It's been more than 1 month since the last commit in the master. @jamesdaniels , is everything ok ? I really hope so and that nothing related to Covid-19 is affecting you or others. |
I also hope everything is going well @jamesdaniels and hoping for new updates soon. Let us know if there is anything the community can do to help with AngularFire v6. |
@jamesdaniels I would like you to authorized me to have right to close issues, there's so many unresolved problem. I can help to clean it. |
Hey all, sorry for the radio silence. My family and I are doing well, there's been some minor symptoms that had us worried, but we all seem to be in good health now. Thanks for your concern! :D Hope all our community members are safe and healthy. Honestly adjusting to WFH, preparing for ng-conf, and the changes w/re to Google I/O and Cloud Next have ate up a lot of my time lately. Jumping back into Github now & will cut what I hope to be the last RC shortly. Aiming for 6.0 stable next week. |
@hiepxanh I'll discuss with other stakeholders at some point, see if that's something we're open to. We are aiming to be more diligent with errors, documentation, and Stackoverflow once 6.0 is out the door. |
@jamesdaniels I'm glad you're fine. That's so good to know that. Just feeling happy you are safe out there. Be healthy, and let us know anything we can help. |
@jamesdaniels , so glad that you're ok and your family too! Working from home is indeed a bit challenging, with this situation from one part, and also when you have kids to deal ^^. About the lib: great news and excellent planning for the community |
Hey @jamesdaniels, I see that you've just landed v6.0 of AngularFire (0be51e6). However, could you detail how to update our apps to use AngularFire v6.0? I see that there are many breaking changes, but no description detailing exactly how to migrate our apps. For e.g., the changelog mentions that:
However, there's no detailed description of how exactly to migrate functionality related to the service. (And there aren't any typings for the underlying
EDIT: Turns out that the issues were caused by me updating AngularFire while Angular CLI was still serving my app. I solved the issue by terminating the serve process then reissuing the command. EDIT No. 2: It seems that the properties in the Firebase JS SDK now return Promise versions of their counterparts. For e.g. |
@EdricChan03 sorry about that changelog entry being dense & not well explained. I'll make sure to document that better. Re your edit no. 2, yes that's intentional. Our plan is to lazy-load the Firebase JS SDK while we are waiting for them to become more modular / tree-shakable; hence our "promise proxy". No timeframes but hoping that our work there will begin bearing fruit soon. I will absolutely do a doc push but just had to get this release out the door, don't mind any rough corners & feel free to send any PRs if you have an idea on how to better communicate this! |
currentUser returns null. |
Hello, I just experience some buggy or not clearly on the "How Angular Fire work". Specificly:
Don't you mind if you looking into this, sir? @jamesdaniels can you confirm my idea above and help me to explain the idea behind? that could help us update the docs on this angularfire 6 version. And close 3 issues above |
Feature request: i have multiple angular projects (admin/frontend/mobile) and they have separate firebase hosting. other requested feature is. i have 2 firebase instance (development/production). Normally u can switch with |
Feature request : fix all bugs and make an usable tool |
This project only maintain by @jamesdaniels I consider to help him to clear issues and address problem but he doesn't need |
I hope we can add this PR to coming release: #2497 |
Just cut a preview of |
With the recent release of 6.1 I'm really feeling happy with the 6 series and that despite some rocks in the road (that we've overcome together) it's living up to what I hoped. I'm going to close this issue. That's not to say 6-series is done. Things I'd like to get done in minors in the coming weeks/months:
Other than those issues, really just continuing to tighten the API, I don't foresee doing any other major API work until 7.0 (or whatever the next tick release is for us). On the horizon we have JS SDK vNext which is a modular rewrite of the Firebase JS SDK. I'm still thinking about what this will mean for AngularFire and will start a |
The road to AngularFire v6
Angular 9 is coming soon! Let's kick off discussions on what AngularFire v6 will look like. We've managed to keep the API stable and introduce no (intentional) breaks for over a year! 🎉
Hope everyone has enjoyed this consistency.
Why break at all?
We currently support three Angular (6, 7, and 8) and Firebase majors (5, 6, and 7) with the current version of AngularFire... that's a lot of work.
To support older versions of Firebase we have a number of conditionals and a lot of unneeded code/types.
To maintain support for older versions of Angular, we've been holding back our typescript version and not adopting any new APIs.
Plan of action
Version 5.3:
Release it, WIP here #2187
Version 5.4:
Reimplement
@angular/fire/database-deprecated
using@angular/fire/database
under the hood. It's been raised thatdatabase-deprecated
has been pretty broken since we've dropped it from our test suite but it is holding back some of our developers from upgrading. We should try to get them on the latest version of 5, before we start breaking things.Perhaps at this point we'll mark peer support for Angular 9.0 final. So far in my testing the release candidates seem to work fine and we shouldn't need to break a major to support.
Once we've dealt with that:
Version 5.3.1:
Cherry-pick the fixes for the
ng add
andng deploy
commands.Version 6:
SEMVER
comments in the source)ng-packagr
WIP Refactor build process #2117angularfire2
shim releases on NPMAngularFireAnalytics
andAngularFireRemoteConfig
use in the upcoming 5.3 release (Adding AngularFireAnalytics, AngularFireRemoteConfig, and refactoring DI Tokens #2187) to all the modules and drop the instance getters.Make all modules side-effect free (no longer importing the SDKs)Version 6.1:
Version 7:
Things we're thinking of:
Can we build a migrator forDuring my investigation I found little evidence that those still using@angular/fire/database-deprecated
in a reasonable timespan? If so, I'll dropdatabase-depreciated
in version 6, if not we'll punt until version 7.database-depreciated
had moved to 5.0 stable; I've decided to drop for 6.0.Require the userngcc no longer has issue with thisimport 'firebase/*'
themselves before use of the non-lazy modules, this would allow us to export all the packages under@angular/fire
and mark them as having no side-effects.@angular/fire
rather than having sub-packages.The text was updated successfully, but these errors were encountered: