gpt4 book ai didi

firebase - 在 Firebase 存储中,我可以使用 db "get"规则吗?

转载 作者:行者123 更新时间:2023-12-03 21:20:13 26 4
gpt4 key购买 nike

我正在尝试根据用户数据保护我的 Firebase(谷歌云存储)文件。在 firestore 中,我使用基于获取数据库内容的规则(在用户表中查找 uid 并匹配一个字段)并且工作正常。我试图在 firebase 存储中使用相同类型的规则,但在模拟器中我得到 Error: simulator.rules line [12], column [17]. Function not found error: Name: [get].; Error: Invalid argument provided to call. Function: [get], Argument: ["||invalid_argument||"] .我的规则是这样的:

  match /b/{bucket}/o {
function isAuth() {
return request.auth != null && request.auth.uid != null
}
function isAdmin() {
return isAuth() &&
"admin" in get(/databases/$(database)/documents/users/$(request.auth.uid)).data.roles;
}
function clientMatch(client) { // expects user's "client" field to be ID of client
return isAuth() &&
client == get(/databases/$(database)/documents/users/$(request.auth.uid)).data.client;
}
match /P/Clients/{client}/{allPaths=**} {
allow read, write: if isAdmin() || clientMatch(client);
}
}
}

第 12 行是第一个开始 client == get , 在 clientMatch() .
我无法判断这些函数是否仅支持 Firestore (db) 规则,或者它们是否也适用于存储。

如果这不起作用,我有什么选择?人们如何查找用户数据以确保 Firebase 存储安全?

最佳答案

您目前无法在存储规则中引用 Firestore 文档。如果您希望将其视为存储规则的一项功能,请file a feature request .

考虑改为使用 Cloud Functions 存储触发器在文件上传后执行一些额外检查,如果您发现文件无效,则将其删除。

关于firebase - 在 Firebase 存储中,我可以使用 db "get"规则吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54910503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com