gpt4 book ai didi

json - 如何使用 Firebase 安全规则创建公共(public)/私有(private)用户配置文件?

转载 作者:行者123 更新时间:2023-12-02 17:59:03 25 4
gpt4 key购买 nike

{
"rules": {
"users": {
"$uid":{
//Private whatever under "uid" but Public is exposed
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid",

"public": { ".read": "auth != null" }
}
}
}
}
  • 我创建了这些规则以使用户拥有公开/私有(private)个人资料
  • users/{uid}/public”配置文件应可由经过身份验证的任何用户访问,但无法访问下面的数据“用户/uid

这是存储在我的 Firebase 数据库中的一些虚假数据。

{
"users" : {
"YFIIAgwa2kaannrXjwvSZmoywma2" : {
"Name:" : "Example 1",
//This public child should be accessible by
//"Example 2" but cannot know the name of
// this user
"public" : {
"email" : "example1@gmail.com"
}
},
"YgSfSzPzxLbyDL17r6P9id2cdvH2" : {
"Name:" : "Example 2",
//This public child should be accessible by
//"Example 1" but cannot know the name of
// this user
"public" : {
"email" : "example2@gmail.com"
}
}
}
}

我想知道这是否是阻止任何用户访问用户关键信息的可靠方法!无论如何,我可以通过使用验证来改进这个吗?我愿意接受你们提出的任何建议。我想为我的应用程序创建最好且简单的安全规则。

最佳答案

您绝对可以使用当前的数据结构来保护对私有(private)和公共(public)数据的访问。

但您有时可能需要的一个用例是显示所有用户的公共(public)信息列表。使用您当前的数据结构这是不可能的,因为 Firebase's security model cannot be used to filter data 。有关此问题的精彩答案,请参阅 Restricting child/field access with security rules .

大多数开发人员将公共(public)数据和私有(private)数据分割在完全独立的子树中:

{
"users" : {
"YFIIAgwa2kaannrXjwvSZmoywma2" : {
"Name:" : "Example 1",
},
"YgSfSzPzxLbyDL17r6P9id2cdvH2" : {
"Name:" : "Example 2",
}
},
"public_profiles": {
"YFIIAgwa2kaannrXjwvSZmoywma2" : {
"email" : "example1@gmail.com"
},
"YgSfSzPzxLbyDL17r6P9id2cdvH2" : {
"email" : "example2@gmail.com"
}
}
}

然后您可以通过以下方式保护访问:

{
"rules": {
"users": {
"$uid":{
".read": "auth != null && auth.uid == $uid",
".write": "auth != null && auth.uid == $uid",
}
},
"public_profiles": {
".read": "auth != null",
"$uid":{
".write": "auth != null && auth.uid == $uid",
}
}
}
}

现在,任何经过身份验证的用户都可以收听 /public_profiles,这意味着您可以轻松显示这些配置文件的列表。

关于json - 如何使用 Firebase 安全规则创建公共(public)/私有(private)用户配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38921824/

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