Rya*_*ery 12 firebase firebase-security
可以说我有两种对象用户和帐户.用户可以拥有多个帐户并与其他用户共享.因此Account1可能对User1和User2可用.虽然AccountB仅适用于User1.所以User1有两个帐户,User2有一个帐户.
什么是"firebase"构建方式?
我最初认为用户可以分别存储他们所属的帐户数组.
users: {
1: {
name: 'Ted',
accounts: [1, 2]
}
2: {
name: 'Frank',
accounts: [1]
}
}
accounts: {
1: {
name: "Checking"
},
2: {
name: "Savings"
}
}
Run Code Online (Sandbox Code Playgroud)
或者帐户将有一组用户.
users: {
1: {
name: 'Ted'
}
2: {
name: 'Frank'
}
}
accounts: {
1: {
name: "Checking",
users: [1, 2]
},
2: {
name: "Savings"
users: [1]
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道哪种方式让我能够轻松找到用户的帐户,这样当Ted登录时我可以列出他所属的帐户而无需拉下整个数据库.为了安全起见,我不希望他的机器上的所有数据.
问题#1安全规则会解决这个问题吗?我的意思是我打算设置我的安全规则,以便用户只能拥有他们所属的帐户.我希望,如果我查询"/ accounts",我将只返回用户可以访问的那些帐户...不是吗?
问题#2是否有查询项目列表的机制.像"/ accounts/[1,2]",以便我收回帐户"/ accounts/1"和"/ accounts/2"?
感谢您分享的任何信息.
Mic*_*uer 20
在详细介绍细节之前,您需要记住以下几点:
考虑到这一点,我建议像第一个例子一样存储数据,但不使用数组:
users: {
1: {
name: 'Ted',
accounts: {
1: true,
2: true
}
}
2: {
name: 'Frank',
accounts: {
1: true
}
}
}
accounts: {
1: {
name: "Checking"
},
2: {
name: "Savings"
}
}
Run Code Online (Sandbox Code Playgroud)
这将让您轻松获取特定用户的所有帐户.如果您还需要能够转向另一个方向(帐户的所有用户),您还必须复制该信息并将其存储在帐户中.例如:
accounts: {
1: {
name: "Checking",
users: {
1: true,
2: true
}
},
2: {
name: "Savings",
users: {
1: true
}
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
5084 次 |
| 最近记录: |