gpt4 book ai didi

javascript - 使用 Firebase 存储上传 base64 图像

转载 作者:数据小太阳 更新时间:2023-10-29 04:36:15 26 4
gpt4 key购买 nike

我正在制作这个应用程序,用户可以在其中拥有个人资料照片(但每个人只有一张照片)。我把所有东西都设置好了,但是当图片超过 2mb 时,加载需要一些时间,实际上我只需要 50kb 左右的图片(只显示小图片,最大 40 像素)。我编写了一些代码将图像直接放入实时数据库(转换为 Canvas 并使它们成为 7kb 的 base64 字符串)。但是,这并不是很干净,最好使用 Firebase 存储。

从新的更新 3.3.0 开始,您可以使用 putString() 方法将 Base64 格式的字符串上传到存储。但是,当我上传 Canvas 图像(以“data:image/jpeg;base64,”开头)时,出现错误:

v {code: "storage/invalid-format", message: "Firebase Storage: String does not match format 'base64': Invalid character found", serverResponse: null, name: "FirebaseError"}

强>.

这个错误是不是因为开头的canvas图片的字符串?我搜索了整个 Stack,但似乎找不到答案。

最佳答案

哎呀,我已经忙了很长时间了,但就在我发布这个之后,我自己找到了答案。解决方案是获取 base64 变量并删除前 23 位数字(因此:“data:image/jpeg;base64,”)并将其上传到 Firebase 存储。现在它被接受了,您可以通过以下方式将链接放入您的实时数据库中:

var storageRef = firebase.storage().ref().child("Whatever your path is in Firebase Storage");
var imageRef = "Your path in the Realtime Database";

storageRef.getDownloadURL().then(function(url) {
imageRef.child("image").set(url);
});

var task = storageRef.putString("Your base64 string substring variable", 'base64').then(function(snapshot) {
console.log('Uploaded a base64 string!');
});

关于javascript - 使用 Firebase 存储上传 base64 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39310147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com