NativeFirebaseError:[存储/未授权]用户无权执行所需的操作

问题描述 投票:0回答:1

我在将图像上传到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”

提前感谢!

javascript firebase-authentication firebase-storage react-native-firebase react-native-image-picker
1个回答
0
投票
我错误地认为该应用程序是已通过GoogleService-Info.plist文件进行身份验证的用户,而不是该应用程序的用户需要进行身份验证。

我要解决的步骤:

安装@ react-native-firebase / auth

    进入您的Firebase控制台的“身份验证”部分并启用“匿名登录”方法
  1. 在componentDidMount()中呼叫firebase.auth()。signInAnonymously()
  2. 而且...最终能够成功将putFile提交到存储!

非常感谢@FrankvanPuffelen!

© www.soinside.com 2019 - 2024. All rights reserved.