【发布时间】:2021-11-05 16:15:27
【问题描述】:
这是我想要实现的目标:
我有一个 iOS 前端、一个 Vapor 后端和一个 Firebase 存储桶。我有一个应用程序,其中一小部分功能能够将图像添加到一些 Note 对象。当用户将图像附加到注释时,我想将图像上传到存储桶,获取存储它的密钥/url,并将其存储在后端数据库中。这一切都很简单,除了 - 我希望存储桶只能由我的 iOS 代码和我的后端代码访问,而不是任何人都可以公开访问。
后端由服务帐户内容覆盖。但我不确定如何覆盖 iOS 端。 Firebase 生成了这个基本规则来防止公共访问:
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth != null;
}
}
}
我相信这条规则只允许通过 Firebase 身份验证的用户使用存储桶,但我不打算通过 Firebase 对我的用户进行身份验证。有没有办法可以设置规则,使存储桶只能通过我自己的 iOS 代码访问?我是否应该只创建一个 Firebase 用户,并让该应用在每次应用启动时都以该用户身份进行身份验证?我可以配置 Firebase 以使其使用一些秘密来允许它执行超出规则的存储操作吗?
**为清晰起见进行了编辑
【问题讨论】:
-
查找 Firebase 匿名授权
标签: ios swift firebase firebase-authentication firebase-storage