You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pyrebase与Firebase Admin上传图片至Firebase Storage遇报错

解决你的Firebase存储上传问题

让我们一步步搞定你遇到的两个Firebase存储上传故障:


1. Pyrebase 400 Bad Request 错误

从报错信息里的请求URL https://firebasestorage.googleapis.com/v0/b/gs://test-bc3ec.appspot.com//o?name=example.PNG 能一眼看出问题:你的storageBucket配置多了gs://前缀。Pyrebase要求这个字段只填Bucket的纯名称,不需要协议头。

修正后的配置代码:

import pyrebase
config = {
  "apiKey":"AIzaSyDphkVRuW39CyUbLmT5OkeZ2YmAUhwEUm4",
  "authDomain":"test-bc3ec.firebaseapp.com",  # 建议补全完整的authDomain后缀
  "databaseURL":"https://test-bc3ec.firebaseio.com/",
  "storageBucket":"test-bc3ec.appspot.com"  # 去掉多余的gs://前缀
}
firebase = pyrebase.initialize_app(config)

简化后的上传代码:
Pyrebase的put方法支持直接传入本地文件路径,不需要手动读取字节流,代码可以更简洁:

storage = firebase.storage()
# child路径开头的斜杠可以省略,更符合规范
fbupload = storage.child("test/Captura.png").put("Captura.PNG")

2. Firebase Admin SDK 模块调用错误

报错TypeError: 'module' object is not callable是因为你把firebase_admin.storage这个模块当成函数调用了。Admin SDK的存储操作需要先获取存储桶对象,再进行上传。

修正后的Admin SDK代码:

import firebase_admin
from firebase_admin import credentials, storage

cred = credentials.Certificate("nuevo.json")
firebase_admin.initialize_app(cred, {
  'databaseURL':'https://test-bc3ec.firebaseio.com/',
  'storageBucket': 'test-bc3ec.appspot.com'  # 同样需要添加正确的Bucket配置
})

# 获取存储桶实例
bucket = storage.bucket()
# 创建云端文件对象,指定存储路径
blob = bucket.blob("imagenes/Captura.PNG")
# 上传本地文件
blob.upload_from_filename("Captura.PNG")

这两个问题的核心都是配置格式错误和SDK调用方式不规范,按照上面的修改应该就能正常完成图片上传了。

内容的提问来源于stack exchange,提问作者Angel Judath Alvarez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:22:40