113 results found
-
Cloud Firestore with multitenant, how the implement Firestore in Datastore mode
That Cloud Firestore soport multitenat how the implement
Firestore in Datastore mode allows a multitenant application to use separated silos of data for each tenant.1 vote -
1 vote
-
Continent
Support multi-region across different continents.
1 vote -
Export / Import single document on firestore console
Please add an option to export or import a single document from firestore console in firebase page, not in gcloud. Same way like we can do on firebase database export and import a json file with the data.
1 vote -
Request Query Parameters for Security Rules
Introduce a request.query.parameters object to store key-value pairs from the query payload, enabling conditional access control based on user authentication state.
Current workarounds, like nesting documents in sub-collections, restrict uniqueness to a single field. This proposal allows queries to be filtered dynamically based on multiple conditions.
For example, access can be restricted based on user authentication state or location.
if request.query.parameters.user == request.auth.uid if request.query.parameters.location == request.auth.token.region if request.query.parameters.email != null if request.query.parameters.email == request.auth.email
Privileged searches can be enabled with conditions such as:
if request.query.parameters.key == request.auth.token.vipkey
Range queries can be implemented using a function object to validate if…
1 vote -
1 vote
-
assign server timestamp in epoch format
adding a function like FieldValue.serverTimestamp() that does the same thing but assigns time in epoch format rather than in normal date time format.
it may be a better choice in order to reduce the data transfer and document collection size.
1 vote -
Similar to __name__, allow ordering documents by internal createdAt / updatedAt sentinel value
A document always maintain createdAt / updatedAt timestamp value internally. But these fields can't be used for ordering documents.
For example :-
(This is possible)
await citiesRef.orderBy('name').limit(3).get();
(This is NOT possible)
await citiesRef.orderBy('created_at').limit(3).get();
Currently if we need order by timestamp, we need to maintain a separate timestamp field alongside internal createdAt / updatedAt fields. Then create index over that additional field to perform order by timestamp.
Similar to name sentinel, firestore should provide created_at and updated_at sentinel for ordering document. These sentinel should work without any new index, ascending or descending order.
1 vote -
Geohashing examples for firestore Python Admin SDK
I have read this article https://firebase.google.com/docs/firestore/solutions/geoqueries in mentions cool examples on how to implement Geohashes, but I can't find python examples. Is there a recommended way of implementing geohashes on Firebase Admin SDK for python?
1 vote -
Enable keyboard navigation in Firestore console to move between documents using up/down arrow keys.
I suggest that Firebase enhances the Firestore console by adding support for keyboard navigation, allowing users to move between documents using the up and down arrow keys. This feature would improve accessibility and efficiency, especially for users who prefer using the keyboard over the mouse or trackpad. Implementing this functionality would make data management in Firestore more user-friendly and accessible to a wider range of users.
1 vote -
1 vote
-
Support UUID as a data type
I'm using Go client, and at this time UUIDs are represented as array of numbers. This doesn't make any sense and is quite clunky and unergonomic, but this is the client behaviour - the Go type
[16]byte
converts to that, and there is no way to affect it directly.This also means that a list of UUIDs is impossible to represent at all, since a Go slice converts into an array, and Firestore can't handle arrays in arrays. Btw, that by itself is ridiculous, but right now my problem is with UUIDs specifically.
A list of IDs is a trivial…
1 vote -
Allow cross-project restoring of Firestore databases
When working with Firestore databases, you may want to restore an entire database for testing in your stage project.
However, currently, you can only restore in the same project
1 vote -
rules map
In Firebase Firestore rules, we currently have various controls and functions, which are very handy. However, array management is not optimal. I propose introducing a map function for arrays in Firebase Firestore rules. This function would allow us to map arrays of objects, significantly simplifying the creation and management of rules.
1 vote -
Allow to assign tags to Firestore databases
With multi-db support in Firestore now launched, this enabled many possibilities but also requires more granular inventory management of the databases created.
--
For compliance reasons and for better management of your cloud assets, it's important to assign metadata to your cloud resources.
Especially for storage services, this is important, as it allows you to track which resources contain PII, who owns them, etc.--
Attaching this kind of data is typically done using tags in Google Cloud.
If it would be possible to attach tags to individual Firestore databases, this would solve the management of databases and allow easier…1 vote -
Allow to attach IAM permissions to databases
With multi-db support in Firestore now launched, this enabled a ton of new features, though the way permissions are granted is not ideal.
--
Instead of being able to attach permissions to individual databases, you have to use conditional IAM permissions on a project level.
--
This leads to problems when you want to grant IAM permissions to employees with access to only a subset of databases.
Granting a subset of databases to access will prevent them from using the Firebase / Google Cloud console, as they will not have permission to view all databases.--
Also conditional IAM permissions…
1 vote -
Allow use of the filter value on whereArrayContains within a firestore rule
I believe that by simply allowing access to the whereArrayContains filter value, it should be possible to solve for a use-case which can generally only be resolved using an SQL/relational database or cloud functions.
Take the following query;
getDocs( query( collection(db, "profiles"), where("groupProfileLinkIdReference", "array-contains", "groupProfileLinkId1"), limit(1), ), )
If we can access the value which in this case is "groupProfileLinkId1", it becomes possible to do the following;
match /profiles/{profileId} { allow list: if validateListProfileDbEntry(); } function validateListProfileDbEntry(){ let groupProfileLinkId = resource.data.groupProfileLinkIdReference[0]; let groupProfileLink = get(/databases/$(database)/documents/groupProfileLink/$(groupProfileLinkId)).data; return groupProfileLink.isApproved == true; }
The way the data is modelled is that every time…
1 vote -
Orderby('any_potential_null_field', excludeNull: false) should exist
OrderBy should be able to return collection item when target property is null.
1 vote -
Expose createTime & updateTime in scheduled Firebase LevelDB exports
I am using this procedure for regular backups: https://firebase.google.com/docs/firestore/solutions/schedule-export
and some tooling to locally analyze data in the resulting (downloaded) LevelDB backups.The Admin SDK exposes (internally, but still) createTime, readTime and updateTime properties on snapshots. I don’t see these properties included in the database exports; which makes them less complete as backups, and less useful for data analysis.
1 vote -
provide feedback on database restore progress
During a restore, there's no way to know how long it will take or where the progress is. It would be great to have some visibility into the process.
I initiated a restore from a backup created by the automated schedules
gcloud alpha firestore databases restore \
--source-backup=projects/PROJECTID/locations/LOCATION/backups/BACKUPID \
--destination-database='DATABASE_ID'I have seen this take between 20 minutes to over a day.
The documentation for this feature is here:
1 vote
- Don't see your idea?