【发布时间】:2020-10-10 05:02:39
【问题描述】:
我有一个 Base64 编码的字符串(这是 AES 加密的字符串)。 我正在尝试将其存储在 Firebase Storage 中,然后从中下载。
我尝试了多种选择,例如
pathReference.putString(data, 'base64')
这不会在存储中保留 base64 字符串,而是将其转换为整数。我也尝试过提供 {contentType: "application/Base64"} 但 putString 似乎不起作用。
然后我试着把它变成一个 blob
blob = new Blob([data], {type: "application/Base64"})
await pathReference.put(blob)
有了这个,我可以在存储中获取 base64 编码的字符串(尽管在字符串中添加了换行符)
当我使用 ES6 fetch 下载它时,我没有取回字符串
const url = await pathReference.getDownloadURL()
const response = await fetch(url)
const data = await response.blob()
反而得到一个错误未处理的承诺拒绝:URIError:URI错误
我只是在寻找一个非常简单的将base64编码字符串上传和下载到firebase存储的示例。
非常感谢任何帮助。
【问题讨论】:
-
为什么要将该字符串保存到存储而不是 Firestore 或数据库?
-
我可以,但用例是定期加密备份,当用户想要恢复一些本地设备数据时可以偶尔使用。这不是我已经在使用 firestore 的实时应用数据。
标签: javascript base64 fetch expo firebase-storage