我正在制作一款应用程序,用户可以设置个人资料图片(但每个用户只能有一张图片)。我已经把所有的东西都设置好了,但是当图片大小超过2MB时,需要花费一些时间才能加载,而事实上,我只需要图片的大小为50KB左右(仅显示小图像,最大40像素)。我编写了一些代码,将图片直接放入实时数据库中(转换为画布并将其制成7KB的base64字符串)。然而,这并不是很干净,最好使用Firebase存储。
自从更新到3.3.0版本以后,您可以使用putString()方法将Base64格式的字符串上传到Storage。然而,当我上传我的画布图像(它以"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"}.
这个错误是否是由于画布图像开头的字符串引起的?我在Stack上搜索了所有内容,但似乎找不到答案。
自从更新到3.3.0版本以后,您可以使用putString()方法将Base64格式的字符串上传到Storage。然而,当我上传我的画布图像(它以"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"}.
这个错误是否是由于画布图像开头的字符串引起的?我在Stack上搜索了所有内容,但似乎找不到答案。
putString(myString, 'data_url')
了吗?这样做可能无需你修改前23位数字就能成功。https://firebase.google.com/docs/reference/js/firebase.storage - Anthony Chuinard