firebase / firebase/firebase-admin-python
Python Firebase Admin SDK Listener sometimes throws Bad Gateway errors after DB is updated
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 359
- Avg merge
- 5d 6m
- Merged PRs (30d)
- 2
Description
### [READ] Step 1: Are you in the right place?
Yes
### [REQUIRED] Step 2: Describe your environment
* Operating System version: cos-stable-101-17162-40-5
* Firebase SDK version: latest?
* Firebase Product: realtime database, admin SDK
* Python version: 3.8
* Pip version: latest?
### [REQUIRED] Step 3: Describe the problem
I have a database with customers data in it. When a new customer is added, a Firebase function triggers and updates '' to [user.uid]: to represent credits in my system. I have a google cloud VM that has an admin sdk database listener setup. Every month or so, after a new customer signs up, all of my listeners will randomly throw an error. The error I am seeing is:
**requests.exceptions.HTTPError: 502 Server Error: Bad Gateway for url: https://-default-rtdb.firebaseio.com/.json**
I am using the realtime listener described in this stack overflow post top answer:
https://stackoverflow.com/questions/49863708/python-firebase-realtime-listener
#### Steps to reproduce:
Hard to reproduce, but I can also provide my project ID and exact times for the issue so that the Firebase team can look into server-side logs to see what the issue might be.
#### Relevant Code:
```
from firebase_admin import db
def exampleFunc(event):
try:
print(event)
except Exception as e:
return
#in startup function
listener1=db.reference('').listen(exampleFunc)
listener2=db.reference('').listen(exampleFunc)
```
Contributor guide
Research direction
Start with the Python Realtime Database listener path used by db.reference(...).listen(exampleFunc) and the reported requests.exceptions.HTTPError 502 response after database updates. Review the listener setup and any available project IDs and timestamps against server-side logs. Done means identifying a reproducible cause or documenting how the intermittent failure should be handled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100