问题标签 [firebase-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
81221 浏览

firebase - Firebase 存储和访问控制允许来源

我正在尝试通过 XMLHttpRequest 从 Firebase 存储下载文件,但未在资源上设置 Access-Control-Allow-Origin,因此这是不可能的。有没有办法在存储服务器上设置这个标头?

铬错误信息:

XMLHttpRequest 无法加载 https://firebasestorage.googleapis.com/[EDITED] 请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许访问源“ http://localhost:3449 ”。

0 投票
2 回答
5285 浏览

ios - 使用 Google Firebase 同时上传多张图片

我在 Swift iOS 项目中使用 Google Firebase。我的应用程序中有一部分用户从他们的设备中选择了多张照片进行上传。我正在尝试找到将他们一次选择的所有照片上传到 Firebase 存储的最佳做法。我知道如何上传一张照片。

我查看了文档并没有看到任何关于上传多个 NSData 对象的方法,所以我是否只需运行一个 for 循环并单独上传每个图像?

谢谢!感谢所有反馈。

0 投票
0 回答
39 浏览

ios - 在包含> 1个图像的路径下载多个图像的数据 - Firebase

如果我在 Google Firebase 存储中有一个看起来像这样的路径......userUID/creationDate并且我在该路径中存储了超过 1 个图像,我如何下载该位置的所有图像?

例如,我可以告诉 firebase 下载所有数据userUID/creationDate吗?

或者,对于每张图片,我是否需要直接从网址下载(例如userUID/creationDate/image1.jpg& userUID/creationDate/image2.jpg)?

我在 iOS 项目中使用 Swift。

谢谢!非常感谢所有反馈。

0 投票
3 回答
22938 浏览

ios - 将图像从 UIImage Picker 上传到新的 Firebase (Swift)

我在我的应用程序中设置了一个运行良好的 UIImagePicker。选择我的 UIImage 选择器后,我想将个人资料图片上传到 Firebase。这是我选择图片时的功能。

新文档指出我们需要声明一个 NSURl 才能上传文件。这是我尝试查找给定文件的 NSURL,但它不起作用。这是文档及其链接:https ://firebase.google.com/docs/storage/ios/upload-files#upload_from_data_in_memory

这是我检索 UIImagePicker 的 NSURL 的尝试:

我相信如果图像是从相机而不是画廊拍摄的,我也会遇到困难,因为它还没有保存在设备上。如何找到这张图片/快照的 NSURL?

0 投票
0 回答
262 浏览

firebase - Firebase 存储 - “无论网络质量如何”

阅读Firebase 的文档,它说

Firebase 存储为您的 Firebase 应用提供安全的文件上传和下载,无论网络质量如何

但是我尝试在没有连接的情况下开始上传,然后重新连接,但没有成功。

如何为 Firebase Storage启用离线功能?(我已经有了FIRDatabase.database().persistenceEnabled = true

注意:我正在用 Swift 实现一个 iOS 应用。

这是我正在尝试的代码:

0 投票
1 回答
923 浏览

ios - Firebase 商店:尝试存储到本地文件时出错

当我尝试按照文档中的示例从 Firebase 存储中存储文件时,我收到以下错误:

Optional(Error Domain=FIRStorageErrorDomain Code=-13000 "发生未知错误,请检查服务器响应。" UserInfo={object=ProfilePicture/Jf2dFzI7LZNzQkOkdFfa3UWQJyH2.jpg, bucket=mapit-1333.appspot.com, NSLocalizedDescription=发生未知错误, 请检查服务器响应。, ResponseErrorDomain=NSCocoaErrorDomain, NSFilePath=/local/images, NSUnderlyingError=0x7fc8a080ab50 {Error Domain=NSPOSIXErrorDomain Code=13 "Permission denied"}, ResponseErrorCode=513})

这是我的代码:

0 投票
3 回答
1149 浏览

ios - 使用 Firebase 存储下载检测网络中断

我正在使用 Firebase iOS SDK,并且正在使用“dataWithMaxSize”方法将图像下载到内存中。网络连接良好时下载正常,但如果没有网络连接,则下载任务将无限期继续,不会调用错误回调。看起来在使用 Firebase Android SDK 的这篇SO 帖子中发现了同样的问题。如果有人可以为这个问题提供一些帮助,我将不胜感激。

谢谢

0 投票
4 回答
11694 浏览

android - Firebase 突然停止工作,使用匿名身份验证

我已经为我的应用程序设置了 firebase 存储,并在应用程序和 firebase 控制台上添加了匿名身份验证代码。

起初它工作,但我不知道它为什么停止工作,说用户没有访问该对象的权限

匿名身份验证已正确设置,我确实看到它可以正常工作,代码几乎就像 Google Firebase 文档

日志猫:

D/FirebaseAuth:signInAnonymously:onComplete:true
D/FirebaseAuth:onAuthStateChanged:signed_in:(随机身份验证用户 ID)

...当我从 firebase 请求该项目时

E/StorageUtil:获取令牌时出错 java.util.concurrent.ExecutionException:com.google.firebase.FirebaseException:发生内部错误。[遇到内部错误。] I/DpmTcmClient: RegisterTcmMonitor from: com.android.okhttp.TcmIdleTimerMonitor W/NetworkRequest: no auth token for request E/StorageException: StorageException has occurred。用户无权访问此对象。代码:-13021 HttpResult:403

有人可以帮忙吗?

声明变量

在 OnCreate 方法上

以及从存储中获取的方法:

我也在使用标准的安全规则:

0 投票
2 回答
2420 浏览

firebase - Firebase - 限制特定用户的文件访问权限

我正在尝试使用 Firebase 实现以下行为:

  • 用户使用 Firebase 身份验证登录
  • 用户将文件上传到 Firebase 存储
  • 用户输入不同用户的电子邮件地址。此用户帐户可能已经存在。如果没有,收件人会收到一封电子邮件,提示他们注册。
  • 上传的文件现在应该仅供上传文件的用户(读/写)和具有上述电子邮件地址的其他用户使用(只读)。

这是我到目前为止一直在尝试的:

  • 使用 FirebaseAuth 注册后,我将用户的电子邮件地址存储uid在实时数据库中。
  • 用户上传文件并输入收件人的电子邮件地址后,我会在实时数据库中检查该地址。如果存在,我检索收件人uid并将其存储在文件的元数据中。
  • 在我的 Firebase 存储安全规则中,我检查是否auth.uiduid存储在文件元数据中的内容匹配。

这应该很好用,但是如果用户帐户还不存在,我该怎么办?

  • 用户输入收件人的电子邮件地址后,我可以创建一个新帐户。如果我这样做,我必须指定一个密码。我可以指定一个随机密码并使用密码重置电子邮件,但这不是一个好的用户体验,还因为您无法完全自定义重置电子邮件。

  • 如果我不立即创建新帐户,如何确保只有拥有此电子邮件地址的用户才能访问该文件?将电子邮件地址存储在文件的元数据中不起作用,因为它以后可能会更改。

我有一种感觉,我在这里想得太复杂了。有没有更简单的方法来实现这一点,还是我忽略了什么?

编辑:我进行了更多调查,我认为一种方法是使用自定义身份验证令牌,这是 Firebase Storage guide here所建议的。不过,这需要我设置自己的身份验证服务器,这首先违背了使用 Firebase 身份验证的目的。有没有更简单的方法来实现这一点?

0 投票
2 回答
3024 浏览

javascript - 上传成功后生成下载地址

我已经通过 JS 通过 Google Cloud Storage 成功将文件上传到 Firebase 的存储!我注意到的是,与直接上传的文件不同,通过谷歌云上传的文件只有一个存储位置 URL,这不是一个完整的 URL,这意味着它无法读取!我想知道是否有办法在上传时为 Firebase 实际存储的“下载 URL”部分生成完整的 URL。

在此处输入图像描述

正在使用的代码: