Python访问Google Firestore出现503 DNS解析失败报错如何解决
问题根因
本次报错和服务账号鉴权配置无关,核心是当前网络环境下,本地无法完成firestore.googleapis.com的DNS解析,无法和Firestore服务建立gRPC连接。
排查步骤
- 验证DNS解析状态:打开Windows命令提示符,执行命令
nslookup firestore.googleapis.com,如果返回报错、无有效IP地址,可直接确认存在DNS解析故障。 - 验证基础连通性:在浏览器中直接访问
https://firestore.googleapis.com,如果页面无法打开、提示连接失败,说明当前网络无法访问Google相关服务。 - 检查拦截规则:排查系统代理配置、本地防火墙、安全软件,以及当前使用的网络(企业内网/校园网等)是否拦截了Google域名、gRPC类型的请求。
解决方法
- 刷新/更换DNS:将本地网络的DNS服务器修改为公共DNS(如114.114.114.114、8.8.8.8),修改后执行
ipconfig /flushdns命令刷新本地DNS缓存,之后重试代码。 - 配置gRPC代理:如果当前网络需要通过代理访问外网,在代码开头添加环境变量指定gRPC代理即可:
import os # http代理配置 os.environ["GRPC_PROXY"] = "http://代理地址:代理端口" # 若使用socks5代理则用下方配置,需grpcio版本≥1.38.0 # os.environ["GRPC_PROXY"] = "socks5://代理地址:代理端口" # 原有的Firestore初始化代码放在后面 import firebase_admin from firebase_admin import credentials from firebase_admin import firestore cred = credentials.Certificate('ServiceAccount.json') firebase_admin.initialize_app(cred) db = firestore.client() db.collection('company').add({'name': 'Test'})
如果grpc版本过低,可执行pip install --upgrade grpcio升级到最新版本
- 临时关闭拦截软件:暂时关闭本地防火墙、杀毒安全软件,排除软件拦截导致的连接失败问题。
- 切换网络环境:如果当前网络存在出口限制,可切换到手机热点等其他网络后重试。
内容的提问来源于stack exchange,提问作者Eugene
相关产品推荐
相关产品推荐

