React Native中从Firebase Storage获取图片列表失败问题排查
解决Firebase Storage获取图片列表时的「object-not-found」错误
错误原因
你的代码中创建存储引用的方式有误:storage().ref() 接收的是存储桶内的相对路径,而非完整的gs://开头的URL,这会导致引用指向不存在的位置,触发找不到对象的错误。
修复方案
方案1:使用存储桶内的相对路径(推荐)
直接传入leftImg(存储桶根目录下的文件夹名)即可,Firebase会自动使用配置文件中指定的默认存储桶:
import storage from '@react-native-firebase/storage'; const storageRef = storage().ref('leftImg'); storageRef.listAll().then((result) => { console.log('Items:', result.items); }).catch((error) => { console.error('Error:', error); });
方案2:使用完整GS路径创建引用
如果必须使用gs://开头的完整路径,需要改用refFromURL方法:
import storage from '@react-native-firebase/storage'; const storageRef = storage().refFromURL('gs://wallpaper-(the remaining path).com/leftImg'); storageRef.listAll().then((result) => { console.log('Items:', result.items); }).catch((error) => { console.error('Error:', error); });
额外检查点
- 确认存储桶配置:检查Android的
google-services.json或iOS的GoogleService-Info.plist中的存储桶名称,确保和代码中的一致。 - 路径大小写:Firebase Storage路径区分大小写,确认
leftImg的拼写和存储桶中的文件夹名完全一致。 - 存储访问规则:若修复路径后仍报错,检查Firebase Storage的规则是否允许读取操作。测试阶段可临时设置开放规则(上线后务必修改为安全规则):
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /{allPaths=**} { allow read, write: if true; } } }
内容的提问来源于stack exchange,提问作者Gaju_masare
相关产品推荐
相关产品推荐

