将文件存储在Firebase存储中
Store files in Firebase storage
我正在用Firebase和Angularjs为我的前端构建一个web应用程序。我想知道是否可以将文件(任何类型)存储在Firebase数据库中。
如果是,限制是什么?
感谢
当您将数据从客户端发送到Firebase时,它会被序列化为JSON对象。这限制了您只能存储可以用JSON:原语表示的类型
- 字符串(Unicode)
- 布尔
- 数字(64位浮点)
null
如果您的浏览器支持文件API和,您可以使用上述类型将文件转换为表示形式,那么是的,您可以将其存储在Firebase中(前提是小于10mb)。
如果您的文件是用Unicode编码的,那么您可以简单地将其读取到一个字符串变量中,然后将其传递给Firebase——就像处理任何其他字符串一样。
如果你想使用二进制文件,它会稍微复杂一些。
以图像为例。您可以使用readAsDataURL
方法读取图像,该方法返回一个base64编码的字符串,该字符串可以安全地序列化为JSON。当另一个用户从Firebase请求数据时,他们可以简单地使用src='data:image/png;base64,
语法来正确显示图像。
这里有一个使用这种技术的示例项目。
一个更复杂的例子可能是二进制格式,例如Midi文件。虽然你可以将文件读取成base64字符串,但你不能在浏览器中播放,所以用户需要下载它。你也不能给他们一个base64字符串。因为大多数迷笛玩家都不理解它。
这意味着,在将base64数据写入文件或提供下载之前,您需要编写一个解码器,将其转换回二进制。这可能需要使用类型化数组将其转换为blob。
Firebase现在有存储,它与实时数据库是分开的。它没有Angular绑定,但它将支持大于10mb的文件,并且您不必对任何内容进行编码。
- 在firebase(web)上存储数据时出现问题
- 将Firebase url存储在外部属性文件中
- 在Firebase中存储ID列表
- 将数据作为 JSON 对象存储在 Firebase 中
- 使用 Firebase 存储数据以生成 xml
- 每次用户点击按钮时,将“时间”存储在Firebase中
- Firebase 已注册用户 - 将用户存储在节点中,而不是存储在注册用户中
- 将文件存储在Firebase存储中
- 当我将图像上传到firebase存储并检索下载url并在img标记中显示时,但它显示多次
- 设置通过Firebase认证和存储上传文件的限制,中间没有服务器
- Firebase存储getDownloadURL()不返回工作url
- firebase存储中的更新记录只有在刷新页面后才可见
- 在React Native中从Firebase数据库/存储中加载并返回图像
- 使用angularjs在firebase中存储注释
- 使用Firebase存储数组
- Firebase存储静默失败
- 存储& # 39;长# 39;输入firebase
- 用JavaScript从Firebase存储中重命名或下载文件
- 尝试上传到存储时出现firebase错误
- 如何在firebase存储中引用映像