84 results found
-
Move documents and collections to a new location
Instead of making us create inefficient solutions/workarounds ourselves, it would be nice if a convenient API was provided for this functionality.
For example, transfer
col1/doc1/col2
and all its children tocol1/doc2/col2
8 votes -
Provide a way to document and share models across platforms.
Afaik there is currently no standard way to a) document the structure and organization of Firestore collections and documents stored in a project expected by apps which use it, and b) share the model definition across languages and platforms. Instead, each client requires its own implementation of the app-specific model and conversion to/from Firestore's model which needs to be kept up-to-date as the system involves.
If there were a way to share this model (for ex. proto, JSON schema, other) and easily use it from Firestore APIs, it would reduce dev and maintenance cost and improve developer experience.
3 votes -
Allow updating multiple documents through a query
Many other databases have support for update queries, such as:
- Apply "x" update data to all docs matching "y" query
- Delete all docs matching "x" query
Maybe these queries would only count as 1 write per doc, as opposed to 1 read + 1 write. At the very least they would have better performance.
15 votes -
Transactions should allow exponential backoff retries like pub sub
Transactions allow passing an options object with maxRetries, but all retries are immediate. If there are many other functions writing the same document, transactions will fail after all retries (lock will time out). Maybe a better strategy would be to delay with exponential backoff like pub sub does.
1 vote -
Allow developers to use the local Firestore database for free
It'd be really nice if you could allow users to create local drafts, of small documents, for instance, and save them locally for free with Firestore.
This way you wouldn't have to coordinate Firestore and its rules with some other database and client code nor would you have to choose the simpler option of getting charged for writes and reads on remote database documents that really only one user is supposed to write and read.
Please note that while you could use the realtime database to save drafts, 1 it's not always easy to figure out whether that'd actually be…
1 vote -
18 votes
-
Support offset-based document access and pagination
There should be an easy way to get a specific document by index in a query:
// this query should work as it's read, if i wanted to use gte i'd use a where
query(this.collection, orderBy('anything', 'asc'), startAt(index), limit(1))
1 vote -
firestore 'in' 2d array order optional
For some reason an 'in' wury with a 2d array also runs with a sort function. which is not provided or supported by other features such as ArrayUnion and ArrayRemove.
the order should be an optional parameter because using a system where we must find all other documents that have the exact same features but maybe in a different order, is not possible. there is no native sort option when using ArrayUnion, and we've been taught through firestore arrays in general, that orders of items fundamentally shouldn't be considered to exist due to idempotency.
TLDR:
ArrayUnion does not support 'in…1 vote -
How to reduce reads for static data
I want to ask documentation on how to reduce the number of unnecessary reads. eg. my product data
let query = store.collection("products");
Assuming I have 500 products, one user click on get products = 500 reads ? If 100 users click that function, then all my quota is gone in 1 minute. Is that right?
How can I overcome this.
Please provide a full example. I have seen Mr Duckworth's presentation in a firebase event, but could not see a good example.
1 vote -
FieldValue.min() and FieldValue.max()
Currently the Firestore API supports FieldValue.increment() to atomically increment or decrement a numeric value. I propose to add:
FieldValue.max(value): if the provided value is greater than the existing value on the server, then the field on the server takes this value. If it is less than the existing value, then the existing value remains.
FieldValue.min(value): (the opposite) if the provided value is less than the existing value on the server, then the field on the server takes this value. If it is greater than the existing value, then the existing value remains.
These operators should work on numeric fields AND…
12 votes -
Improve performance & speed of client side write
I've used both Firestore and MongoDB's Realm Device Sync. While Firestore works great in terms of scaling, the performance and speed for client side write is far behind realm, especially when client side is doing some batch writes.
Realm uses techniques like data compression and delta sync to reduce the data size when uploading (https://www.mongodb.com/docs/atlas/app-services/sync/details/protocol/), I'd like to see Firestore doing the same and improve the performance of client side batch write.
Also, what I've noticed is that Firestore's client side write performance degrades a lot after some time being offline, this isn't great for apps that would…
6 votes -
Add option to save a query in Firestore Query Builder
I have some queries that I perform frequently through Firestore Query Builder. It would be great to save queries to be able to run them with one click.
2 votes -
Firestore Blocking Functions
Blocking functions for Firestore e.g. block writing a document until a certain condition is met
7 votes -
Support deleting databases via the API
You cannot delete a Firestore database with the API; you must use the CLI if you want to do this programmatically. This is problematic as it means you essentially need to create a shell in your application, ensure the CLI is available, authenticate, and then make the required CLI call.
1 vote -
should be able to sort data and select data with criteria on different fields
should be able to sort data and select data with criteria on different fields (the limitation section on https://firebase.google.com/docs/firestore/query-data/order-limit-data?hl=en&authuser=0)
2 votes -
12 votes
-
Create way to duplicate documents within firebase console so we can easily move them elsewhere
Sometimes it would be nice to have ability to use the console to Duplicate/Copy firestore documents and put them in different locations of the database.
2 votes -
Expose subcollections as json fields
Currently, subcollections are treated separately from fields in the UI. This seems like an arbitrary distinction - a subcollection is simply a json object under a document. You could do the same thing with a string field.
The API could support retrieving subcollections as string fields in json format for a document. This would prevent the need to iterate over every document in a collection, then get a list of the subcollections, then retrieve the documents from those subcollections, etc. If worried about time required, since Firestore supports 100 nesting levels, perhaps the API call could include the nesting level…
1 vote -
It's impossible to import data into the emulator without first exporting, which is a backwards design
Developers should be able to use the CLI to easily pass in a path to a json file, whose contents may be imported into a firestore emulator collection. For instance:
firebase emulators:start --import ./data/import.json --collection=puzzles
2 votes -
Allow security rules to validate custom bearer tokens
Currently, Firestore and Cloud Storage security rules
req.auth
property will only validate and accept Google-signed ID tokens from Firebase Auth/Identity Platform.This means that "user authentication rules" CANNOT be used if we rely on our own (or 3rd-party) authentication/token server.
Proposal:
Allow security rules to configure the token verification rules so that they can verify the token claims of a configured token authority. For example, tokens signed by a service account private key, or 3rd party auth server (aside from Firebase Auth/Identity Platform).1 vote
- Don't see your idea?