Cloud Shell用Python向Firestore存储API结果时报连接错误如何修复?
问题原因&修复方案
这个400错误最常见的触发原因是Firestore客户端初始化时没有正确识别到GCP项目ID,你可以按以下步骤排查修复:
- 第一步:先在Cloud Shell中确认当前绑定的项目是否是你开通Firestore的项目,执行命令:
gcloud config get-value project
如果输出的项目ID不对,执行以下命令切换到对应项目:gcloud config set project 你的实际GCP项目ID - 第二步:修改代码,初始化Firestore客户端时显式传入项目ID,避免自动识别失败,修改后的代码参考:
import requests from google.cloud import firestore url = "https://api.coindesk.com/v1/bpi/currentprice.json" r = requests.get(url) resp: str = r.text if not (resp=="null" or resp=="[]"): # 替换成你自己的GCP项目ID db = firestore.Client(project="替换为你的GCP项目ID") doc_ref=db.collection("CoinData").add(r.json()) - 额外排查点:
- 确认你已经在GCP控制台开启了Firestore API,并且创建的Firestore数据库是原生模式,如果选的是Datastore模式会无法兼容Firestore SDK的调用,也会报参数错误
- 确认当前Cloud Shell使用的账号有Firestore的写入权限,默认Cloud Shell的登录账号是你登录GCP的账号,只要你是项目所有者/编辑者都有权限
内容的提问来源于stack exchange,提问作者ariasantony
相关产品推荐
相关产品推荐

