是否可以从我的应用程序更改Firebase数据库规则。 所以,我有一个带有photoURL和名字的用户。现在我想让用户选择,是否可以看到他的photoURL。或者只有他的联系人或没有人。我认为实现这一目标的最佳方法是更改规则,因此只有用户联系人才能读取保存photoURL的数据。 如果有可能......我怎样才能做到这一点。如果没有,还有另一种方法吗?
答案 0 :(得分:2)
没有用于更改数据库安全规则的API。但您可以以允许用例的方式编写安全规则。例如。假设您将用户的联系人存储在数据库中的共享设置:
contacts: {
user8633311: {
user:209103: true,
user1234567: true
},
user209103: {
user8633311: true
}
user1234567: {
user:209103: true
}
},
sharing: {
user8633311: true,
user209103: false,
user1234567: false
}
现在,您可以使用以下内容保护对用户photos
节点的访问:
{
"rules": {
"photos": {
"$uid": {
".read": "
auth.uid == $uid || (
root.child('contacts').child($uid).child(auth.uid).val() === true &&
root.child('sharing').child($uid).val() === true
)
"
}
}
}
}
使用这些规则,您可以允许用户控制共享,而无需不断重新部署安全规则。