我认为使用 Firebase 会很简单,但我还没有找到解决方案:
我的 Firestore 数据库中有一个 Admins 集合,基本上想限制 Firebase 存储中的 Images 文件夹,以便只有管理员可以添加新图像。安全规则不允许我执行“如果用户 ID 在数据库中,则允许创建”。
有谁知道如何实现这个功能?从查看其他问题来看,函数似乎可以做到这一点,但是我找不到有关如何使用函数上传图像的可行解决方案,更不用说根据数据库数据对其进行限制了。
我为类似案例所做的事情是使用 Cloud Function 将管理状态同步到Firebase Auth custom claim。简化版本可能类似于:
exports.setAdminClaim = functions.firestore.document('admins/{uid}').onWrite(change => {
if (change.after.exists) {
return admin.auth().setCustomUserClaims(change.after.id, {admin: true});
}
return admin.auth().setCustomUserClaims(change.after.id, {admin: false});
});
这允许您在存储规则中使用自定义声明:
allow write: if request.auth.token.admin == true
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句