从Firebase存储到数据库存储图像URL是否安全?

时间:2018-07-21 09:59:34

标签: ios firebase firebase-realtime-database google-cloud-firestore firebase-storage

我是编程和Firebase的新手。我正在使用Firebase构建iOS应用。实际上,我想缓存来自Firebase存储的图像。 我正在使用Kingfisher pod来帮助我下载和缓存图像,因为....似乎Firebase存储没有提供缓存图像方法

使用翠鸟下载和缓存的代码如下:

let url = URL(string: "url_of_your_image")
imageView.kf.setImage(with: url)

它需要一个URL,这就是为什么我在用户成功上传到Firebase存储之后设法存储存储在Firebase存储中的图像的URL。

Firebase Storage中上传的图像的URL如下

  

https://firebasestorage.googleapis.com/v0/b/xxxxx.appspot.com/o/profilePicture%2Fefb36-df90-4fa5-ad42-bd452cdff?alt=media&token=313407-79c7-4c49-851a-4ae8452bdc

它有令牌.....

让我们说这是用户的个人资料图片的图像,因此从Firebase存储中获取后,我会将其本地存储在设备中。

这种方法安全吗?

如果我检查,firebase存储中的每个图像的令牌都不同,所以我认为这没问题

1 个答案:

答案 0 :(得分:1)

Firebase为Cloud Storage生成的下载URL为任何知道该URL的人提供了对该文件的公共读取访问权限。但是正如您所看到的,令牌是唯一的并且被认为是不可猜测的。通常,这意味着某人知道URL(从而能够读取文件)的唯一方法是与他们共享URL。

很难对某事是否安全给出一个笼统的答案。这取决于您希望它免受什么伤害以及如何存储。

例如:如果将其存储在数据库中,并授予每个人完全的读取和查询访问权限,则实际上是在授予每个人对所有文件的只读访问权限。如果这正是您想要的,那就太好了。如果这不是您想要的,则需要定制数据库安全规则以适合您的需求。