如何将文件从 AngularJS 应用程序上传到 Firebase 托管

How can I upload a file from AngularJS application to Firebase Hosting

我正在使用 Firebase 托管来托管我的 AngularJS 应用程序。我正在使用 ng-file-upload 从我的应用程序中已有的表单中获取用户上传的图像。我想将用户上传的图像存储在我的 Firebase 托管上的一个文件夹中。我无法使用 Firebase 存储,因为我需要一个预先确定的直接 link 到我平台各个部分的图像资源。我想也许我可以使用 Firebase Functions 上传文件并将其存储在我的 Firebase 托管中。我将 运行 保留为跨源错误。

有人可以解释一下如何构造 Firebase 函数以便我可以将图像上传到我的 Firebase 托管吗?据我了解,Firebase 函数与其余 Firebase 托管内容不在同一位置托管,但我不确定这是否会有所不同。

Firebase 托管专用于版本化、已部署的静态内容。 Cloud Storage for Firebase 绝对是适合您的产品。当您说您需要 "pre-determined direct link" 时,您的意思是您需要能够在上传完成之前知道 URL 吗?如果没有,您可以直接使用 Firebase Cloud Storage SDK 中的 getDownloadURL()

如果您确实需要提前知道 URL,您可以执行以下操作:

  1. Upload the file 使用 Firebase SDK 到云存储。
  2. Create a Cloud Function 监听上传。
  3. 在函数中,使用GCS Node API使对象public。

完成上述操作后,您的文件将可以直接 public 访问 https://<bucket>.storage.googleapis.com/<path_to_object>