Pyrebase无法通过child函数下载Firebase Storage指定图片求助
问题:Pyrebase单独指定文件下载失败,遍历下载正常
使用Pyrebase从Firebase Storage下载指定文件guitarplay.jpg,程序无报错但未成功下载。已确认云端文件名、本地路径及文件名均正确,但问题依旧。通过list_files()遍历下载的方式可以成功获取所有文件,现需实现单独指定文件下载的功能。
失败的指定下载代码
import pyrebase config = { 'apiKey': "A*******Jju*****", 'authDomain': "test1-6*****eapp.com", 'databaseURL': "https://te**1************sia-southeast1.firebasedatabase.app", 'projectId': "tes****5e", 'storageBucket': "te**********m", 'serviceAccount': "serviceAccountKey.json" } firebase_storage = pyrebase.initialize_app(config) storage = firebase_storage.storage() storage.child("guitarplay.jpg").download(path="C:/Users/subha/OneDrive/Documents/HSMS_obj" , filename="nouser.jpg")
可行的遍历下载代码
以下遍历下载的方式可成功获取文件,但需求是单独指定文件下载:
esp=storage.list_files() for file in esp: # if(file=='guitarplay.jpg'): print(file.name) file.download_to_filename('photo.jpg')
可能的原因及解决方法
- 文件路径层级不符:检查Firebase Storage中
guitarplay.jpg是否在根目录。如果文件在子目录下,child()需传入完整路径(如"subfolder/guitarplay.jpg"),可通过遍历代码中打印的file.name确认实际路径。 - download方法参数问题:Pyrebase部分版本对
path和filename参数解析存在问题,尝试将本地完整路径直接传入:storage.child("guitarplay.jpg").download("C:/Users/subha/OneDrive/Documents/HSMS_obj/nouser.jpg") - 权限配置问题:确认
serviceAccountKey.json拥有Storage读取权限,同时检查Firebase Storage的访问规则是否允许服务账号读取该文件。 - 文件名大小写问题:Firebase Storage文件名区分大小写,确保代码中指定的文件名与云端完全一致。
内容的提问来源于stack exchange,提问作者Subham Kanu
相关产品推荐
相关产品推荐

