我正在尝试使用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
});
});
}
这是我目前想提供的所有信息。如果还有其他问题,请与我联系,我们非常感谢您为解决此问题提供的帮助!