sig*_*i13 3 javascript firebase-authentication firebase-storage react-native-firebase react-native-image-picker
我在将图片上传到 Firebase 存储时遇到问题。我正在使用 React Native 的 @react-native-firebase/storage 并且安装和连接似乎很好,因为我能够很好地引用图像:
const ref = firebase.storage().ref('myImage.png');
问题绝对是基于权限的,因为当我暂时删除时:
: if request.auth != null
来自 Firebase 控制台存储规则:
rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}
这工作得很好:
firebase.storage()
    .ref('images/test.jpg')
    .putFile(myImage[0].path)
    .then((successCb) => {
        console.log('successCb');
        console.log(successCb);
    })
    .catch((failureCb) => {
        console.log('failureCb');
        console.log(failureCb);
    });
那么如何进行身份验证以安全地使用 putFile 呢?
编辑:我正在使用“@react-native-firebase/storage”:“^6.2.0”
提前致谢!
Cha*_*wki 11
编辑 Firebase 存储规则以允许上传而无需安装@react-native-firebase/auth。
rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write
    }
  }
}
完毕
就是这样弗兰克!
我错误地认为该应用程序是已经通过 GoogleService-Info.plist 文件进行身份验证的用户,而不是该应用程序的用户需要进行身份验证。
我的修复步骤:
安装@react-native-firebase/auth
进入 Firebase 控制台的身份验证部分并启用匿名登录方法
在 componentDidMount() 中调用 firebase.auth().signInAnonymously()
并且...终于能够成功提交 putFile 到存储!
非常感谢@FrankvanPuffelen !!
小智 5
我是编码新手,但我面临同样的问题。在我的情况下,它不适用于匿名登录。我必须更改目录位置才能使其正常工作。
原规则:
rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {  => Change here
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}
改成:
rules_version = '2';
service firebase.storage {
  match /b/Your_APP_Name.appspot.com/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}
| 归档时间: | 
 | 
| 查看次数: | 4332 次 | 
| 最近记录: |