Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
114 commits
Select commit Hold shift + click to select a range
172f200
[chore] Release 5.0.1 (#557)
lahirumaramba Jun 17, 2021
9ff16bd
fix(fcm): A workaround for the concurrency issues in googleapiclient …
hiranya911 Jun 25, 2021
fb64981
chore: Configuring GitHub issue templates (#562)
hiranya911 Jul 12, 2021
0e35c9a
fix(auth): check if user disabled on check_revoked (#565)
bojeil-google Aug 4, 2021
01db7eb
[chore] Release 5.0.2 (#567)
lahirumaramba Aug 13, 2021
52eb94a
Speed up the PageIterator by evaluating items once per page (#572)
davidwtbuxton Sep 8, 2021
fccf814
Allows google-api-core[grpc] versions 2.X.X (#576)
jimcasteleiro Sep 16, 2021
1a53b04
[chore] Release 5.0.3 (#580)
lahirumaramba Sep 23, 2021
f38c5f7
fix: Extracting GAPIC API calls into a new module (#581)
hiranya911 Oct 4, 2021
0a11d07
feat(auth): ability to delete provider in auth (#579)
hardikns Oct 5, 2021
ebf1bcd
fix: Fixing a broken integration test (#582)
hiranya911 Oct 6, 2021
9f3143c
[chore] Release 5.1.0 (#587)
lahirumaramba Nov 4, 2021
348a90d
Added return type for `bucket` function (#591)
sarmadgulzar Nov 30, 2021
02596dc
correct kwargs documentation in docstrings (#559)
skarzi Nov 30, 2021
008b1d8
feat(auth): enables OIDC auth code flow (#549)
ScruffyProdigy Dec 14, 2021
f695072
Fixing integration tests (#595)
lahirumaramba Dec 15, 2021
6dd41aa
[chore] Release 5.2.0 (#596)
lahirumaramba Dec 15, 2021
684bd24
Add delayed response message for holidays (#597)
lahirumaramba Dec 17, 2021
6ee8528
chore: Update Node.js version in CI workflow (#602)
lahirumaramba Jan 7, 2022
7cfb798
Revert "Add delayed response message for holidays (#597)" (#600)
lahirumaramba Jan 7, 2022
6d826fd
add GitHub URL for PyPi (#613)
andriyor Apr 8, 2022
44a8fde
Remove failing nightly tests in project_management (#636)
lahirumaramba Aug 19, 2022
e1c6c6f
feat(firestore): Async Firestore (#635)
jkyle109 Aug 24, 2022
336dbef
[chore] Release 5.3.0 (#637)
lahirumaramba Aug 25, 2022
9e5b8e3
Bug fix - Changing variable from "MemoryCost" to "cpuMemCost" in stan…
pragatimodi Sep 14, 2022
32d40ca
change: Deprecated support for Python 3.6 (#646)
lahirumaramba Sep 22, 2022
78d2e44
[chore] Release 5.4.0 (#647)
lahirumaramba Sep 22, 2022
0dd6303
change: Drop Python 3.6 support (#645)
lahirumaramba Sep 28, 2022
5b7ac05
feat: Add function to verify an App Check token (#642)
dwyfrequency Sep 29, 2022
6c565f2
[chore] Release 6.0.0 (#649)
lahirumaramba Oct 6, 2022
d7772f9
password_hash obtained from Firebase Auth backend needs to be base64U…
thomasmburke Oct 14, 2022
37ecf18
fix(fac): Include pyjwt in distribution artifacts (#654)
lahirumaramba Oct 14, 2022
b9e95e8
[chore] Release 6.0.1 (#655)
lahirumaramba Oct 17, 2022
18714fb
chore(firestore): Upgrade google-cloud-firestore to include COUNT que…
lahirumaramba Feb 1, 2023
68001d9
change(ml): Deprecate AutoML model support (#670)
lahirumaramba Feb 2, 2023
5c21b81
[chore] Release 6.1.0 (#672)
lahirumaramba Feb 2, 2023
6ae9408
chore: Fix pypy tests (#694)
lahirumaramba Apr 5, 2023
77848a6
chore(auth): Update Auth API to `v2` (#691)
pragatimodi Apr 6, 2023
f0865f7
Add release notes to project URLs in PyPI (#679)
samueldg Apr 6, 2023
4323ed8
feat(fcm): Add `send_each` and `send_each_for_multicast` for FCM batc…
Doris-Ge Jun 9, 2023
59a22b3
[chore] Release 6.2.0 (#708)
lahirumaramba Jun 22, 2023
aef52be
fix: Correctly catch DefaultCredentialsError when looking up project_…
jonathanedey Sep 21, 2023
4052a3c
Update `github.ref` value in `release.yml` (#730)
lahirumaramba Oct 12, 2023
44b7568
feat: add clockSkewSeconds (#714)
stillmatic Oct 26, 2023
c77608e
fix: Add `PyJWKClientError` to raised errors documentation and handle…
jonathanedey Nov 15, 2023
ea885c1
Deprecated support for Python 3.7 (#741)
jonathanedey Dec 4, 2023
3773b64
[chore] Release 6.3.0 (#742)
jonathanedey Dec 5, 2023
e073f8c
chore: Bump github actions CI to use Node 20 (#748)
jonathanedey Dec 19, 2023
e2ddedb
fix(auth): Fix iOSBundleId parameter name (#727)
jesuslosada Dec 19, 2023
7a9dfa0
chore: Update Firebase test project setup instructions. (#736)
jonathanedey Dec 19, 2023
3c39186
Add missing return type for firebase_admin.firestore.client() (#747)
wliumelb Dec 20, 2023
b2173da
fix(fcm): Export `send_each` and `send_each_for_multicast` (#749)
MarcoTomasRodriguez Jan 3, 2024
df94f8b
Update release and ci workflows to use `GITHUB_OUTPUT` and bump `acti…
jonathanedey Jan 3, 2024
4f20371
feat(fcm): Enabled the `direct_boot_ok` parameter for FCM Android Con…
jonathanedey Jan 9, 2024
2252f17
chore: Add python 3.11 and 3.12 to CI tests (#754)
jonathanedey Jan 16, 2024
2d64228
Use GitHub CLI in publish workflow. (#753)
jonathanedey Jan 16, 2024
c988d2f
[chore] Release 6.4.0 (#756)
jonathanedey Jan 18, 2024
2376584
Revert "[chore] Release 6.4.0" (#757)
jonathanedey Jan 18, 2024
9c1f5b5
chore: Update PyPi to use trusted publisher for authentication and co…
jonathanedey Jan 22, 2024
ee5cb24
[chore] Release 6.4.0 (#760)
jonathanedey Jan 23, 2024
451880f
[chore] Release 6.4.0 Take #2 (#762)
jonathanedey Jan 23, 2024
b992604
[chore] Release 6.4.0 Take 3 (#763)
jonathanedey Jan 23, 2024
a7ac17a
[chore] Upgrade `actions/setup-python` to v5 (#765)
jonathanedey Feb 1, 2024
0752992
[chore] Rename pytest teardown methods from deprecated `teardown` to …
jonathanedey Feb 13, 2024
8bcc751
feat(functions): Add task queue API support (#770)
jonathanedey Feb 27, 2024
7dbe278
fix: doc spacing (#775)
jonathanedey Mar 5, 2024
a14ca32
Add rate limiting exceptions. (#695)
skion Mar 6, 2024
f25394e
Export rate limiting error types `TooManyAttemptsTryLaterError` and `…
jonathanedey Mar 6, 2024
244f32b
fix: doc quotes (#778)
jonathanedey Mar 6, 2024
32b900b
[chore] Release 6.5.0 (#779)
jonathanedey Mar 11, 2024
0e87c44
chore: Update integration test resources (#796)
lahirumaramba Jul 3, 2024
0d498a6
Fix link to `requests.Response` in FirebaseError. (#800)
tnip Aug 1, 2024
b4700da
chore: Remove Python 3.7 from workflows (#806)
lahirumaramba Aug 28, 2024
18e6043
chore(deps): bump actions/download-artifact in /.github/workflows (#810)
dependabot[bot] Sep 10, 2024
c044729
chore: Update `actions/upload-artifact` (#812)
lahirumaramba Sep 12, 2024
8727e91
feat(firestore): Add Firestore Multi Database Support (#818)
jonathanedey Oct 24, 2024
2a8170f
[chore] Bump cachecontrol (#819)
jonathanedey Oct 24, 2024
d8d6aea
chore: Create dependabot.yml (#820)
lahirumaramba Oct 24, 2024
32e8dd2
feat: Support passing `google.auth` typed credentials in `initialize_…
jonathanedey Nov 4, 2024
be56a0f
chore: Add `X-Goog-Api-Client` metric header to requests (#826)
jonathanedey Nov 4, 2024
50ace23
feat(firestore): Upgrade `google-cloud-firestore` to support Firestor…
jonathanedey Nov 7, 2024
d3e2a63
[chore] Release 6.6.0 (#829)
jonathanedey Nov 7, 2024
1b131f0
[chore] Release 6.6.0 Take 2 (#830)
jonathanedey Nov 7, 2024
43ab91e
chore: Skip integration test for deprecated FCM API and bump pypy CI …
jonathanedey Dec 19, 2024
8ba819a
chore: Adding delayed response message for holidays (#842)
jonathanedey Dec 20, 2024
0ce187f
Revert "chore: Adding delayed response message for holidays (#842)" (…
jonathanedey Jan 6, 2025
e5618c0
pass clinet's params to SSEClient (#845)
aiueo-1234 Jan 13, 2025
e6c95e7
chore: Add tests for `Reference.listen()` (#851)
jonathanedey Jan 22, 2025
cc9a069
feat(rc): Sever Side Remote Config Integration (#863)
pijushcs Mar 5, 2025
3c86208
[chore] Release 6.7.0 (#867)
lahirumaramba Mar 12, 2025
387f11a
feat(fcm): Support `proxy` field in FCM `AndroidNotification` (#868)
jonathanedey Mar 19, 2025
ffeb939
Python 3.8 has EoL'ed. Update README to deprecate Python 3.8 support …
lahirumaramba Apr 22, 2025
bde3fb0
[chore] Release 6.8.0 (#874)
jonathanedey Apr 24, 2025
70013c8
chore: Correct x-goog-api-client header logic (#876)
jonathanedey May 8, 2025
2d9b18c
chore: Use mock time for consistent token generation and verification…
jonathanedey May 27, 2025
f7546f5
feat(fcm): Add `live_activity_token` to `APNSConfig` (#880)
jonathanedey Jun 3, 2025
e0599f9
refactor: Optimize success count calculation in BatchResponse (#837)
mingi3314 Jun 3, 2025
99b6020
feat(fcm) Add `send_each_async` and `send_each_for_multicast_async` f…
jonathanedey Jun 3, 2025
e4aff7e
[chore] Release 6.9.0 (#885)
jonathanedey Jun 5, 2025
363166b
Adds send each snippets. (#891)
joefspiro Jun 13, 2025
339452e
fix(functions): Remove usage of deprecated `datetime.utcnow() and fix…
jonathanedey Jul 2, 2025
8d8439f
Merge v7 Feature Branch (#900)
jonathanedey Jul 14, 2025
dfaceec
chore(deps): bump astroid from 3.3.10 to 3.3.11 (#901)
dependabot[bot] Jul 15, 2025
2c8a34a
[chore] Release 7.0.0 (#902)
jonathanedey Jul 17, 2025
4fa2918
feat(auth) Update `ActionCodeSettings` to support `link_domain` and d…
huwmartin Jul 23, 2025
6555a84
[chore] Release 7.1.0 (#903)
jonathanedey Jul 31, 2025
5e75250
chore: Added an `AGENTS.md` file to instruct AI agents how to interac…
jonathanedey Aug 20, 2025
3d3ef0c
fix(auth): Fixed auth error code parsing (#908)
jonathanedey Sep 8, 2025
de713d2
chore: Removed invalid `asyncio_default_fixture_loop_scope` config (#…
jonathanedey Sep 16, 2025
ee8fd70
fix(functions): Refresh credentials before enqueueing first task (#907)
jonathanedey Sep 17, 2025
f85a8de
chore: Fix typo (#913)
jonathanedey Sep 29, 2025
fc6c8ee
chore(deps): bump pylint from 3.3.7 to 3.3.9 (#917)
dependabot[bot] Nov 25, 2025
2305519
feat(functions): Enable Cloud Task Queue Emulator support (#920)
jonathanedey Dec 3, 2025
807e7e1
chore: Fix auth snippet typo (#924)
jonathanedey Dec 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 17 additions & 5 deletions ISSUE_TEMPLATE.md → .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,21 @@
---
name: Bug report
about: Bug reports related to any component in this repo
title: ''
labels: ''
assignees: ''

---

### [READ] Step 1: Are you in the right place?

* For issues or feature requests related to __the code in this repository__
file a Github issue.
* If this is a __feature request__ make sure the issue title starts with "FR:".
* For issues related to __the code in this repository__ file a GitHub issue.
* If the issue pertains to __Cloud Firestore__, report directly in the
[Python Firestore](https://github.com/googleapis/python-firestore) GitHub repo. Firestore
bugs reported in this repo will be closed with a reference to the Python Firestore
project.
* For general technical questions, post a question on [StackOverflow](http://stackoverflow.com/)
with the firebase tag.
with the `firebase` tag.
* For general Firebase discussion, use the [firebase-talk](https://groups.google.com/forum/#!forum/firebase-talk)
google group.
* For help troubleshooting your application that does not fall under one
Expand All @@ -15,8 +26,9 @@

* Operating System version: _____
* Firebase SDK version: _____
* Library version: _____
* Firebase Product: _____ (auth, database, storage, etc)
* Python version: _____
* Pip version: _____

### [REQUIRED] Step 3: Describe the problem

Expand Down
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: "[FR]"
labels: 'type: feature request'
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context, code samples or screenshots about the feature request here.
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
Binary file modified .github/resources/integ-service-account.json.gpg
Binary file not shown.
13 changes: 7 additions & 6 deletions .github/scripts/publish_preflight_check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ if [[ ! "${RELEASE_VERSION}" =~ ^([0-9]*)\.([0-9]*)\.([0-9]*)$ ]]; then
fi

echo_info "Extracted release version: ${RELEASE_VERSION}"
echo "::set-output name=version::v${RELEASE_VERSION}"
echo "version=v${RELEASE_VERSION}" >> $GITHUB_OUTPUT


echo_info ""
Expand Down Expand Up @@ -169,12 +169,13 @@ readonly CHANGELOG=`${CURRENT_DIR}/generate_changelog.sh`
echo "$CHANGELOG"

# Parse and preformat the text to handle multi-line output.
# See https://github.community/t5/GitHub-Actions/set-output-Truncates-Multiline-Strings/td-p/37870
# See https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#example-of-a-multiline-string
# and https://github.com/github/docs/issues/21529#issue-1418590935
FILTERED_CHANGELOG=`echo "$CHANGELOG" | grep -v "\\[INFO\\]"`
FILTERED_CHANGELOG="${FILTERED_CHANGELOG//'%'/'%25'}"
FILTERED_CHANGELOG="${FILTERED_CHANGELOG//$'\n'/'%0A'}"
FILTERED_CHANGELOG="${FILTERED_CHANGELOG//$'\r'/'%0D'}"
echo "::set-output name=changelog::${FILTERED_CHANGELOG}"
FILTERED_CHANGELOG="${FILTERED_CHANGELOG//$'\''/'"'}"
echo "changelog<<CHANGELOGEOF" >> $GITHUB_OUTPUT
echo -e "$FILTERED_CHANGELOG" >> $GITHUB_OUTPUT
echo "CHANGELOGEOF" >> $GITHUB_OUTPUT


echo ""
Expand Down
42 changes: 27 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,23 @@ jobs:
strategy:
fail-fast: false
matrix:
python: [3.6, 3.7, 3.8, 3.9, pypy3]
python: ['3.9', '3.10', '3.11', '3.12', '3.13', 'pypy3.9']

steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4

- name: Set up Python 3.13 for emulator
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Setup functions emulator environment
run: |
python -m venv integration/emulators/functions/venv
source integration/emulators/functions/venv/bin/activate
pip install -r integration/emulators/functions/requirements.txt
deactivate
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v1
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install dependencies
Expand All @@ -22,23 +33,24 @@ jobs:
pip install -r requirements.txt
- name: Test with pytest
run: pytest
- name: Set up Node.js 10
uses: actions/setup-node@v1
- name: Set up Node.js 20
uses: actions/setup-node@v4
with:
node-version: 10.x
- name: Run integration tests against emulator
run: |
npm install -g firebase-tools
firebase emulators:exec --only database --project fake-project-id 'pytest integration/test_db.py'

node-version: 20
- name: Install firebase-tools
run: npm install -g firebase-tools
- name: Run Database emulator tests
run: firebase emulators:exec --only database --project fake-project-id 'pytest integration/test_db.py'
- name: Run Functions emulator tests
run: firebase emulators:exec --config integration/emulators/firebase.json --only tasks,functions --project fake-project-id 'CLOUD_TASKS_EMULATOR_HOST=localhost:9499 pytest integration/test_functions.py'
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Set up Python 3.7
uses: actions/setup-python@v1
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v5
with:
python-version: 3.7
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,14 @@ jobs:

steps:
- name: Checkout source for staging
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
ref: ${{ github.event.client_payload.ref || github.ref }}

- name: Set up Python
uses: actions/setup-python@v1
uses: actions/setup-python@v5
with:
python-version: 3.6
python-version: 3.9

- name: Install dependencies
run: |
Expand All @@ -45,6 +45,7 @@ jobs:
pip install setuptools wheel
pip install tensorflow
pip install keras
pip install build

- name: Run unit tests
run: pytest
Expand All @@ -57,12 +58,12 @@ jobs:

# Build the Python Wheel and the source distribution.
- name: Package release artifacts
run: python setup.py bdist_wheel sdist
run: python -m build

# Attach the packaged artifacts to the workflow output. These can be manually
# downloaded for later inspection if necessary.
- name: Archive artifacts
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: dist
path: dist
Expand Down
43 changes: 21 additions & 22 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,14 @@ jobs:
# via the 'ref' client parameter.
steps:
- name: Checkout source for staging
uses: actions/checkout@v2
uses: actions/checkout@v4
with:
ref: ${{ github.event.client_payload.ref || github.ref }}

- name: Set up Python
uses: actions/setup-python@v1
uses: actions/setup-python@v5
with:
python-version: 3.6
python-version: 3.9

- name: Install dependencies
run: |
Expand All @@ -56,6 +56,7 @@ jobs:
pip install setuptools wheel
pip install tensorflow
pip install keras
pip install build

- name: Run unit tests
run: pytest
Expand All @@ -68,12 +69,12 @@ jobs:

# Build the Python Wheel and the source distribution.
- name: Package release artifacts
run: python setup.py bdist_wheel sdist
run: python -m build

# Attach the packaged artifacts to the workflow output. These can be manually
# downloaded for later inspection if necessary.
- name: Archive artifacts
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: dist
path: dist
Expand All @@ -87,45 +88,43 @@ jobs:
# 3. with the label 'release:publish', and
# 4. the title prefix '[chore] Release '.
if: github.event.pull_request.merged &&
github.ref == 'master' &&
github.ref == 'refs/heads/master' &&
contains(github.event.pull_request.labels.*.name, 'release:publish') &&
startsWith(github.event.pull_request.title, '[chore] Release ')

runs-on: ubuntu-latest
permissions:
# Used to create a short-lived OIDC token which is given to PyPi to identify this workflow job
# See: https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#adding-permissions-settings
# and https://docs.pypi.org/trusted-publishers/using-a-publisher/
id-token: write
contents: write

steps:
- name: Checkout source for publish
uses: actions/checkout@v2
uses: actions/checkout@v4

# Download the artifacts created by the stage_release job.
- name: Download release candidates
uses: actions/download-artifact@v1
uses: actions/download-artifact@v4.1.7
with:
name: dist
path: dist

- name: Publish preflight check
id: preflight
run: ./.github/scripts/publish_preflight_check.sh

# We pull this action from a custom fork of a contributor until
# https://github.com/actions/create-release/pull/32 is merged. Also note that v1 of
# this action does not support the "body" parameter.
# See: https://cli.github.com/manual/gh_release_create
- name: Create release tag
uses: fleskesvor/create-release@1a72e235c178bf2ae6c51a8ae36febc24568c5fe
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.preflight.outputs.version }}
release_name: Firebase Admin Python SDK ${{ steps.preflight.outputs.version }}
body: ${{ steps.preflight.outputs.changelog }}
draft: false
prerelease: false
run: gh release create ${{ steps.preflight.outputs.version }}
--title "Firebase Admin Python SDK ${{ steps.preflight.outputs.version }}"
--notes '${{ steps.preflight.outputs.changelog }}'

- name: Publish to Pypi
uses: pypa/gh-action-pypi-publish@v1.0.0a0
with:
user: firebase
password: ${{ secrets.PYPI_PASSWORD }}
uses: pypa/gh-action-pypi-publish@release/v1

# Post to Twitter if explicitly opted-in by adding the label 'release:tweet'.
- name: Post to Twitter
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ apikey.txt
htmlcov/
.pytest_cache/
.vscode/
.venv/
.DS_Store
Loading