是否可以使用Firebase的firestore设置存储规则?
所以我试图在存储中设置规则,但我需要访问firestore才能将其设置正确 以下是我的示例: 在我的firestore数据库中,我有一个名为是否可以使用Firebase的firestore设置存储规则?,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,所以我试图在存储中设置规则,但我需要访问firestore才能将其设置正确 以下是我的示例: 在我的firestore数据库中,我有一个名为items的users集合。路径如下所示:/users/items/{itemId} 我希望只有当项目的{id}已存在于firestore数据库的项目集合中时,用户才能使用以下路径将文件读写到存储器:/items/{id}/file.png。 有没有办法使用firestore将规则正确地设置到存储中 我试过这个: service firebase.stora
items
的users
集合。路径如下所示:/users/items/{itemId}
我希望只有当项目的{id}
已存在于firestore数据库的项目
集合中时,用户才能使用以下路径将文件读写到存储器:/items/{id}/file.png
。
有没有办法使用firestore将规则正确地设置到存储中
我试过这个:
service firebase.storage {
match /b/{bucket}/o {
match /items/{item}/{allPaths=**} {
allow read, write: if exists(/databases/{database}/documents/users/$(request.auth.uid)/items/$(item));
}
}
}
但这不起作用:/
谢谢你的帮助 一个Firebase产品的安全规则无法引用另一个Firebase产品。对性能的影响太大了
如果这样的产品间一致性对您是一个要求,您可能需要考虑从云函数中进行写操作。虽然这不会突然允许跨产品安全规则,但这确实意味着您需要确保是您的代码编写,并且代码运行在比普通用户的手机或PC更可靠的环境中。
好的,所以我来看看云功能。谢谢你的回答!:)这很有帮助。但是,如果您通过云功能将图像上传到Firebase存储,该如何工作?然后我必须先将图像文件或声音文件上传到云函数。我知道你们可以将图像转换成一个长字符串,然后上传到云函数,但还有其他更有效、更好的方法吗?我担心,如果我不将上传改为仅通过云功能完成,黑客可能会将数十亿张图像上传到我的云存储中。这种担心没有必要吗?嗨,弗兰克,三年后我也有同样的问题。我想将图像上载到用户配置文件(存储中),但我需要检查用户是否是要授权的配置文件所有者,答案位于firestore(示例所有者=uid)。三年后有没有新的方法?另一种方法是将概要文件的路径设置为与用户的uid相同(这样我就可以检查发出请求的用户的path=uid)。但是,每个人都知道其他用户的用户uid,这是一个安全问题吗?谢谢,这里没什么变化。知道用户的UID没有安全风险。看见