It’s hard to believe that it has been almost 3 years since I wrote my Firebase 2016 Wishlist in this group. At that time Firebase was a pretty new addition to the Google Cloud and was missing some important features. Everything on that list can now be achieved with Firebase.
Here is my prioritized list of features that I would like to see added in 2019. There’s a theme across a few of these that web\pwa programming could get some more lovin’.
Accurate and Efficient Firestore Document Aggregation
Sometimes you need real counts of the number of documents that meet some criteria. It should be easy to run a report that tells you how many current customer documents you have, how many are of a particular type, or any other property. I know it is tricky in a NoSQL world because of the architecture. I also know that you can use Firestore transactions and/or cloud function triggers to approximate this. However, both are not considered guaranteed as far as I know. If you aren’t guaranteed that the counts are correct then that isn’t good enough, and you are then forced to do a brute force count at least every-once-in-a-while.
I would like to be able to set up counters that describe what and how to count (e.g all documents in a collection that have some property set to whatever). Creating one of those counters would do an initial sweep, which has the normal associated read costs. Then the system would automatically trigger updates for each document in that collection when it is created, updated or deleted. The counter value would be guaranteed to be accurate and reading the counter value would be just a matter of reading one value. Perhaps the counters would be documents in a special <<counters>> collection.
Non-Experimental Web Offline Persistence.
The recent addition of multi-tab support is huge. Thank-you! Without caching, the download counts accrue way too quickly. It’s great that there is support for this in newer versions of the most common browsers, but I’d like to see it not be ‘experimental.’ This is a critical feature and IMO it should be a priority to make it a standard feature, that doesn’t need to be opted in to. With Edge moving over to Chromium (hehe) I hope to see that browser supported in 2019, too.
Hosting Wildcard Subdomains
Firebase hosting is great. It’s fast, easy to configure, and pretty flexible. The new support for multi-hosting is a really great feature, too. I’d love to be able to configure a wildcard domain such as <anything>.mydomain.com and have it map to a folder that downloads an Angular-based PWA. The Angular app could then parse the domain and show different content. Imagine an app where customers have their own third-level domain.
Pricing Details (e.g. reads/writes/deletes counts, budgets, etc.) Right in the Firebase Console
Todd Kerpelman and crew did a great job explaining how to monitor pricing in the Get to Know Cloud Firestore #3 video. Could this information be available in the Firebase Console instead, including some charts that show reads, writes, counts, storage, egress, costs etc. over time?
FireSQL
Firestore is really great. For some use cases, though, a SQL database is still the better way to go. I’d love to have an intrinsic, pay-for-what-you-use SQL solution in Firebase. FireSQL has a nice ring to it. As of earlier this year, we can now access CloudSQL from Cloud Functions. However, it’s a bit clumsy and doesn’t scale automatically. You need to set up a configuration that is large enough for your needs. Plus, it isn’t in the Firebase Console.
Google’s Cloud Spanner technology can provide the standard benefits of SQL such as schemas, SQL syntax, strong consistency, but also support high availability and scalability. Couldn’t this technology be used to back a kick-ass FireSQL offering?
Full-Text Search in Firestore
Commercial apps need to provide search capabilities. It would be great if there was a built-in way to do this rather than leveraging a third party service or rolling something custom in Cloud SQL.
Crashlytics, Performance Monitoring, Analytics for Web
Sure, there’s the standard website Google Analytics. However, it feels like web developers are missing out with all this great technology only being made available to non-web apps. Can some of these features be added for the web with a dashboard in the Firebase Console?
Cron Trigger for Functions
This was recently my biggest wish. However, with the recent launch of Cloud Scheduler, the pain has been reduced. Nevertheless, I’d still love to see a Firebase Scheduler that is integrated directly into the Firebase Console.
Email and SMS Triggers for Functions
Cloud Functions are amazing. The more ways to trigger them the better.
List View Instead of the Big Rects
This is a minor change, but something that is quite annoying. It’s hard to work with the projects list in the console when there are lots of projects. Those big rectangles are nice when there are only a few projects, but waste a lot of space when there are many. Can you add a list view option, please?
Search for Auth Users in the Console
This is also a minor change, but something that is annoying. When searching for someone in the Authentication Users tab, we must enter a full, exact email address. Can you add the ability to search full-text, or at least by domain?
LinkedIn Auth
Yup, this can be implemented with Cloud Functions. Would love to see it as a standard option, though.
Here’s hoping…
Happy New Year!!
Gary
It’s hard to believe that it has been almost 3 years since I wrote my Firebase 2016 Wishlist in this group. At that time Firebase was a pretty new addition to the Google Cloud and was missing some important features. Everything on that list can now be achieved with Firebase.
Here is my prioritized list of features that I would like to see added in 2019. There’s a theme across a few of these that web\pwa programming could get some more lovin’.
Accurate and Efficient Firestore Document Aggregation
Sometimes you need real counts of the number of documents that meet some criteria. It should be easy to run a report that tells you how many current customer documents you have, how many are of a particular type, or any other property. I know it is tricky in a NoSQL world because of the architecture. I also know that you can use Firestore transactions and/or cloud function triggers to approximate this. However, both are not considered guaranteed as far as I know. If you aren’t guaranteed that the counts are correct then that isn’t good enough, and you are then forced to do a brute force count at least every-once-in-a-while.
I would like to be able to set up counters that describe what and how to count (e.g all documents in a collection that have some property set to whatever). Creating one of those counters would do an initial sweep, which has the normal associated read costs. Then the system would automatically trigger updates for each document in that collection when it is created, updated or deleted. The counter value would be guaranteed to be accurate and reading the counter value would be just a matter of reading one value. Perhaps the counters would be documents in a special <<counters>> collection.
Non-Experimental Web Offline Persistence.
The recent addition of multi-tab support is huge. Thank-you! Without caching, the download counts accrue way too quickly. It’s great that there is support for this in newer versions of the most common browsers, but I’d like to see it not be ‘experimental.’ This is a critical feature and IMO it should be a priority to make it a standard feature, that doesn’t need to be opted in to. With Edge moving over to Chromium (hehe) I hope to see that browser supported in 2019, too.
Hosting Wildcard Subdomains
Firebase hosting is great. It’s fast, easy to configure, and pretty flexible. The new support for multi-hosting is a really great feature, too. I’d love to be able to configure a wildcard domain such as <anything>.mydomain.com and have it map to a folder that downloads an Angular-based PWA. The Angular app could then parse the domain and show different content. Imagine an app where customers have their own third-level domain.
Pricing Details (e.g. reads/writes/deletes counts, budgets, etc.) Right in the Firebase Console
Todd Kerpelman and crew did a great job explaining how to monitor pricing in the Get to Know Cloud Firestore #3 video. Could this information be available in the Firebase Console instead, including some charts that show reads, writes, counts, storage, egress, costs etc. over time?
FireSQL
Firestore is really great. For some use cases, though, a SQL database is still the better way to go. I’d love to have an intrinsic, pay-for-what-you-use SQL solution in Firebase. FireSQL has a nice ring to it. As of earlier this year, we can now access CloudSQL from Cloud Functions. However, it’s a bit clumsy and doesn’t scale automatically. You need to set up a configuration that is large enough for your needs. Plus, it isn’t in the Firebase Console.
Google’s Cloud Spanner technology can provide the standard benefits of SQL such as schemas, SQL syntax, strong consistency, but also support high availability and scalability. Couldn’t this technology be used to back a kick-ass FireSQL offering?
Full-Text Search in Firestore
Commercial apps need to provide search capabilities. It would be great if there was a built-in way to do this rather than leveraging a third party service or rolling something custom in Cloud SQL.
Crashlytics, Performance Monitoring, Analytics for Web
Sure, there’s the standard website Google Analytics. However, it feels like web developers are missing out with all this great technology only being made available to non-web apps. Can some of these features be added for the web with a dashboard in the Firebase Console?
Cron Trigger for Functions
This was recently my biggest wish. However, with the recent launch of Cloud Scheduler, the pain has been reduced. Nevertheless, I’d still love to see a Firebase Scheduler that is integrated directly into the Firebase Console.
Email and SMS Triggers for Functions
Cloud Functions are amazing. The more ways to trigger them the better.
List View Instead of the Big Rects
This is a minor change, but something that is quite annoying. It’s hard to work with the projects list in the console when there are lots of projects. Those big rectangles are nice when there are only a few projects, but waste a lot of space when there are many. Can you add a list view option, please?
Search for Auth Users in the Console
This is also a minor change, but something that is annoying. When searching for someone in the Authentication Users tab, we must enter a full, exact email address. Can you add the ability to search full-text, or at least by domain?
LinkedIn Auth
Yup, this can be implemented with Cloud Functions. Would love to see it as a standard option, though.
Here’s hoping…
Happy New Year!!
Gary
--
You received this message because you are subscribed to the Google Groups "Firebase Google Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebase-tal...@googlegroups.com.
To post to this group, send email to fireba...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firebase-talk/1d75f7d6-1ead-4fe1-8304-64a5c47a15bd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Hi Sam,
I don’t suppose you would comment on feature: Delete User Properties in the console
?
Any clarity would be muchly appreciated.
To view this discussion on the web visit https://groups.google.com/d/msgid/firebase-talk/7395fd65-08e6-4a16-bec7-2163c62ffcd7%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firebase-talk/e6db900a-b957-48b3-8d7e-ee7fed5716dd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Firebase Google Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to firebase-tal...@googlegroups.com.
To post to this group, send email to fireba...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/firebase-talk/02ecff5c-5ec9-478f-9304-25d82666c030%40googlegroups.com.
Accurate and Efficient Firestore Document Aggregation
Sometimes you need real counts of the number of documents that meet some criteria. It should be easy to run a report that tells you how many current customer documents you have, how many are of a particular type, or any other property. I know it is tricky in a NoSQL world because of the architecture. I also know that you can use Firestore transactions and/or cloud function triggers to approximate this. However, both are not considered guaranteed as far as I know. If you aren’t guaranteed that the counts are correct then that isn’t good enough, and you are then forced to do a brute force count at least every-once-in-a-while.
When Cloud Firestore exits Beta we will be able to provide "at least once" guarantees about Cloud Functions. We are also adding support for numeric transform operations (think "add 1 to field x") that will make the transactions part of this easier.Native aggregations as part of the service are not part of our plan at the moment. We'd like to have it, of course, but as you said it's at odds with the scalable architecture.
The numeric transform operations sound great if Cloud Functions had an "exactly once" guarantee (and I'm sure they're useful in other contexts), but it seems to me that, with "at least once", if you want to keep track of an exact count, you're going to have to jump through some kind of (expensive) hoops involving a transaction that both increments a counter and stores some kind of per-document "counted" field. Is there a cheaper/simpler way to make the increment function idempotent?I don't know the details of "it's at odds with the scalable architecture", but to me it implies that coming up with our own solutions will be difficult or impossible.
To view this discussion on the web visit https://groups.google.com/d/msgid/firebase-talk/dbd526bd-2dd6-4108-8b00-5ab7f26044f8%40googlegroups.com.