firebase / firebase/firebase-admin-python
"Invalid database id (default)" con Firestore Python (Admin SDK)
- 主要语言
- Python
- 星标
- 1.2k
- 派生
- 359
- 平均合并
- 5 天 6 分钟
- 30 天内合并 PR
- 2
描述
## Ambiente
- Progetto Firebase: misterapp-500516
- Database Firestore: ID (default), edizione Standard, modalità Firestore nativo
- Località database: eur3 (Belgio e Paesi Bassi, multi-regione UE)
- Piano di fatturazione: Blaze
- Ambiente di esecuzione: Streamlit Community Cloud (Python 3.14.7)
- Librerie: firebase-admin (provate sia l'ultima versione disponibile sia fissata a 6.5.0), google-cloud-firestore==2.29.0
## Errore
Alla chiamata di firestore.client() (o equivalentemente google.cloud.firestore.Client()), in scrittura su Firestore:
400 Invalid database id (default)
L'errore compare sia usando firebase_admin.firestore.client() senza specificare database_id, sia specificandolo esplicitamente come "(default)".
## Cosa abbiamo verificato ed escluso
1. Nome del database: confermato dalla Google Cloud Console (pagina Database, colonna "ID database") che è letteralmente (default), non un nome personalizzato.
2. Valori alternativi provati per l'ID: "-default-" (visto nell'URL della Console) → errore diverso: "404 The database -default- does not exist for project misterapp-500516" (nonostante il database sia visibilmente presente e contenga dati). Anche database="" (esplicitamente vuoto, alternativa documentata) → stesso errore "Invalid database id (default)".
3. Client utilizzato: stesso errore identico sia con firebase_admin.firestore.client() sia bypassando firebase_admin e usando direttamente google.cloud.firestore.Client(credentials=..., project=...).
4. Credenziali/chiave dell'account di servizio: testate 4 chiavi diverse generate in momenti diversi (tutte validate sintatticamente e crittograficamente, RSA 2048 bit, caricate correttamente con la libreria cryptography). Stesso errore identico con tutte.
5. Permessi IAM: l'account di servizio ha i ruoli Firebase Admin SDK Administrator Service Agent, Firebase Realtime Database Admin, Service Account Token Creator; aggiunto anche esplicitamente Cloud Datastore User. Nessun cambiamento.
6. Versione della libreria: stesso errore sia con la versione più recente disponibile via pip, sia fissando firebase-admin==6.5.0 (marzo 2024).
7. Codice applicativo: stesso errore anche tornando a una versione del codice precedente, con la connessione a Firestore nella sua forma più semplice (nessuna configurazione avanzata).
## Nota
In precedenza (stessa chiave, stesso progetto, stesso codice base) i salvataggi su Firestore hanno funzionato correttamente per un periodo (dati confermati visibili nella collection). L'errore attuale è comparso senza una modifica di codice chiaramente collegabile, il che fa sospettare un problema lato servizio o una regressione libreria/infrastruttura piuttosto che un errore di configurazione del progetto.
## Cosa funziona regolarmente
- Lettura/scrittura sullo stesso progetto tramite Google Sheets API (libreria gspread) — nessun problema di credenziali o rete generale.
- L'app resta pienamente funzionante usando Google Sheets come unico datastore.
贡献指南
调研方向
Start by reproducing the error with firebase_admin.firestore.client() and google.cloud.firestore.Client(), using the reported firebase-admin and google-cloud-firestore versions. Compare the behavior with the default database ID and the documented alternatives, then inspect the relevant client-library entry points. Done means identifying a reproducible SDK or service cause and documenting a verified resolution or regression.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- firebase, google-cloud, python
- 领域
- databases
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 活跃
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100