"Invalid database id (default)" con Firestore Python (Admin SDK)

未关闭
#978 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
firebase, google-cloud, python
领域
databases

调研方向

首先使用报告中的 firebase-admin 和 google-cloud-firestore 版本,通过 firebase_admin.firestore.client() 和 google.cloud.firestore.Client() 重现该错误。将其行为与默认数据库 ID 以及文档中记录的替代方案进行比较,然后检查相关的客户端库入口点。完成的标准是确定一个可复现的 SDK 或服务原因,并记录经过验证的解决方案或回归。

由索引模型根据 Issue 内容生成。

描述

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.
主要语言
Python
星标
1.2k
派生
359
平均合并
5 天 6 分钟
30 天内合并 PR
2

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

firebase/firebase-admin-python 的其他 Issue

查看 firebase/firebase-admin-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。