如何解决:“ FIREBASE警告:在/ paintings处设置失败:permission_denied”

时间:2019-04-16 12:37:17

标签: javascript html5 firebase firebase-realtime-database firebase-security-rules

我正在尝试使用html2canvas来对div进行屏幕截图,渲染该图像并将其保存到Firebase Storage。我在Firebase存储中创建了一个名为paintings /的文件夹。

我正在使用以下代码:https://gist.github.com/ddly/aa86a19594d1b82156d88854ebf253d8

问题是,当我运行功能canvasScreenshotToFirebase(thumbnail)时-我在浏览器控制台中收到一个权限被拒绝的错误。 “ FIREBASE警告:设置为/ paintings失败:permission_denied”。

所有类似问题均已通过更改实时/云Firestore的规则解决。但是,我都没有使用。但是,我将Firebase存储规则更改为:

    service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write;
    }
  }
}

这允许它公开,因此没有权限错误。

这是我在Web应用程序中配置Firebase实例的方式:

    var config = {
    apiKey: "",
    authDomain: "[project_id].firebaseapp.com",
    databaseURL: "https://[project_id].firebaseio.com",
    projectId: "[project_id]",
    storageBucket: "[project_id].appspot.com",
  };

这就是我将div的屏幕截图设置到该文件夹​​(paintings /)的方法。

function canvasScreenshotToFirebase(thumbnail) { 
    html2canvas(document.querySelector("#sketch")).then(canvas => {
    var screenshot = canvas.toDataURL();
    //document.body.appendChild(canvas);
    firebase.database().ref('paintings/').set({ 
        thumbnail: screenshot     
    });
  });
}

这是我目前想提供的所有信息。如果还有其他问题,请与我联系,我们非常感谢您为解决此问题提供的帮助!

0 个答案:

没有答案