当前位置: 首页 > 知识库问答 >
问题:

上载带有Firebase存储的base64映像

谢夜洛
2023-03-14

我正在制作这个应用程序,用户可以有一张个人资料图片(但只有一张图片每人)。我得到了所有的设置,但当图片是2MB+时,它需要一些时间来加载,实际上我只需要图片是50KB左右(只有图片的小显示,最大40像素)。我做了一些代码将图像直接放入实时数据库(转换为画布并使它们成为一个7KB的base64字符串)。但是,这并不是真的干净,最好使用Firebase存储

自从新的更新3.3.0以来,您可以使用putString()方法将Base64格式的字符串上传到存储区。然而,当我上传我的画布图像(以“data:image/jpeg;base64,”开头)时,我得到了错误:

这个错误是因为画布图像在开始时的字符串导致的吗?我找遍了整个堆栈,但似乎找不到答案。

共有1个答案

习洲
2023-03-14

天哪,我已经忙了很长时间了,但就在我发布了这个之后,我自己就找到了答案。解决方案是获取base64变量并删除前23个数字(so:“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!');
         });
 类似资料:
  • 我创建了一个使用Firebase存储运行的应用。这个想法是,您从照片库中选择一张图片,然后将其上传到Firebase存储。与Firebase的连接似乎工作正常,我可以选择图像。当我按下提交按钮将其上传到Firebase时,问题就出现了。 当我点击它一次,什么也没发生。 当我点击它几次时,我得到一条消息“发生未知错误,请检查HTTP结果代码和内部异常”。。 我该怎么做,寻求建议。。 从舱单中: 从活

  • 我正在使用以下方法来保存信息。 我已经删除了一些用于访问数据库的代码行。 这是日志猫的描述。 E/StorageException:已发生StorageException。发生未知错误,请检查HTTP结果代码和内部异常以获取服务器响应。代码:-13000 HttpResult:0 E/AndroidRuntime:FATAL EXCEPTION:Firebase Storage-Upload-1

  • 有人能指导我同时上传多个图像到Firebase吗? 我试图做的是上传几个图像到Firebase存储,并将每个引用保存在Firestore中(例如,在一个数组中)。我已经设法做到了,但只有一个形象。我正在使用Angularfire存储。 下面是一个stackblitz,如果您想详细了解它:https://stackblitz.com/edit/upload-multiple-firebase com

  • 错误是 我尝试过使用bucket权限,并尝试在google cloud storage中添加权限(如本文所述),但没有任何帮助。任何想法都将不胜感激!

  • 我试图在Firebase存储中使用Firebase上传图像,但文件不能完全上传。它只显示图像的大小9字节,下载时无法预览。 这是我使用的代码:- 我使用的反应本地图像作物选择器。我使用Firebase,但不是反应本机Firebase。请帮助!

  • 我试图从我的移动混合应用程序(离子3)发送一张图片到我的Heroku后端(Node.js),并让后端将图片上传到Firebase存储,并将新上传的fil下载url返回到移动应用程序。 上载成功,但当我转到Firebase存储控制台时,当我试图显示图片的预览时出现错误,下载时无法从计算机打开它。我想这是一个编码的东西...? 如何检索新上传的文件下载url?我希望在中返回一个对象,就像在函数中一样,