firebase - 如何根据firestore中的用户选择为文件设置安全规则以在firebase云存储中为选定用户设置私有/公共?
问题描述
如何在云存储中创建读取文件的权限并在 Firestore 中设置权限。
- 所有者可以阅读/更新
- 所有者可以选择如何读取文件
- 只有他
- 他的朋友(朋友节点)
- 选定的用户(他选择用户 ID。)
如果用户由于某种原因拥有 URL,但它不是所有者并且不在读者列表中,我希望它在云存储中没有权限。
项目清单
Firestore 模型是这样的:
users: {
-user1 {
- friends {
user3 {
"name":...
"photoUrl":...
},
user2 {
"name":...
"photoUrl":...
}
}
...
}
-user2
-user3
}
}
posts: {
-post1 {
"owner": user1,
"description":...
"fileUrl": fileUrlOnFirebaseCloudStorage,
"timestamp"...
"privacy": // private, public, friends, customs users
// how to set this ?
}
-post2
-post3
}
}
Firestore 和 Firebase 云存储的规则是什么?
解决方案
您目前尝试做的事情是不可能仅使用安全规则的。为一种产品设置的安全规则无法读取其他项目的数据。因此,您无法读取 Cloud Firestore 中部署到 Cloud Storage 的规则中的文档。
推荐阅读
- javascript - 在前端控制台(React App)上显示来自 Node API 的错误消息
- html - CSS - 如何在选择器前后应用时删除小屏幕上的内容
- python - 无法从 python 3 中的标准输入获取输入
- google-apps-script - 如何通过电子表格中的脚本打开工作表?
- reactjs - 为什么单击 React 后未检查单选按钮?
- opengl - 给定一个投影矩阵,如何在 OpenGL 中获得视场角?
- excel - 运行时错误 9 仅在一台机器上发生?
- php - PHP:如何将字符串中的单词 A 替换为单词 B - A 和 B 在数组 [] 和 [+1] 中
- c# - 如何在替代单击c#上打开和关闭工具条菜单下拉菜单
- java - 如何从本地目录加载 resources.properties,而不是 Java 中的 JAR?