firebase / firebase/firebase-admin-python

[FR] Can we add `shallow` support to `Query.get` like `Reference.get`...?

Open
#662 1 comment 0 reactions 0 assignees View on GitHub
api: database type: feature request
Dominant language
Python
Stars
1.2k
Forks
359
Avg merge
5d 6m
Merged PRs (30d)
2

Description

**Is your feature request related to a problem? Please describe.**

The addition of the `shallow` parameter when retrieving data was requested in #61 and accepted in #109, but this only added the `shallow` param to `Reference.get`. I have a `Query` (`order_by_child`) that I would like to `shallow`, but `Query.get` doesn't support the param.

**Describe the solution you'd like**

I don't see any limitation to having both the `orderByChild` and `shallow` parameters in [the docs for RTDB via Rest](https://firebase.google.com/docs/database/rest/retrieve-data), but admittedly I haven't tried it yet. If there are none, can we add `shallow` to `Query.get`, too?

**Describe alternatives you've considered**

None exist, as far as I know, if I need to select a subset of paths filtered by criteria but only want the keys of those refs. Open to suggestion otherwise...

**Additional context**

_Expected_

```python
>>> just_ids_please = (firebase_admin.db
... .reference("/path/to/resource")
... .order_by_child("some/child")
... .equal_to("some_value")
...).get(shallow=True)
...
>>>
```
_Actual_

```python
>>> just_ids_please = (firebase_admin.db
... .reference("/path/to/resource")
... .order_by_child("some/child")
... .equal_to("some_value")
...).get(shallow=True)
...
TypeError: get() got an unexpected keyword argument 'shallow'
```

Contributor guide

Open the contributing guide

Research direction

Start by comparing the Query.get and Reference.get entry points against the Firebase Realtime Database REST documentation linked in the issue. Confirm whether shallow can be combined with order_by_child and equal_to, then make Query.get accept the parameter and verify that the shown filtered query returns only reference keys.

Written by the indexing model from the issue text.

Assessment

Tech stack
firebase, python
Domain
database
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.