Firebase实时数据库规则粒度
我从文档中知道Firebase的实时数据库有一组规则类型,如.write和.read 我的问题是:更具体的需求是什么? 比如,如果我不仅要授予用户可以/不可以写的权限,还要授予用户可以写来创建、写来编辑或写来删除的权限,那该怎么办?Firebase实时数据库规则粒度,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我从文档中知道Firebase的实时数据库有一组规则类型,如.write和.read 我的问题是:更具体的需求是什么? 比如,如果我不仅要授予用户可以/不可以写的权限,还要授予用户可以写来创建、写来编辑或写来删除的权限,那该怎么办? FRB规则能否区分不同类型,以便我对其进行管理?是的,您可以这样做。在实时数据库中,您可以使用.validate规则确定是否允许操作。因此,如果您希望允许用户写入,但仅允许删除(例如),您可以执行以下操作: { "rules": {
FRB规则能否区分不同类型,以便我对其进行管理?是的,您可以这样做。在实时数据库中,您可以使用
.validate
规则确定是否允许操作。因此,如果您希望允许用户写入,但仅允许删除(例如),您可以执行以下操作:
{
"rules": {
"posts": {
"$postId": {
// Anyone can read
".read": true,
// Some write condition
".write": ...,
// User can only write to create or delete, not edit
".validate": "!data.exists() || !newData.exists()"
}
}
}
}
在这种情况下,用户只能在的情况下写入RTDB!data.exists()
-即,如果操作运行前的数据不存在,或者如果,则创建新数据!newData.exists()
-即,如果操作后此记录中的新数据不再存在,则删除
您可以将这些规则结合起来,对数据和访问进行细粒度的控制。如果您需要更多的访问控制,而不是使用RTDB安全规则,那么您可以使用RTDB规则和创建云函数锁定数据,以使用服务器端逻辑和处理访问和修改RTDB
另外,请查看:
是的,你可以这样做。在实时数据库中,您可以使用
.validate
规则确定是否允许操作。因此,如果您希望允许用户写入,但仅允许删除(例如),您可以执行以下操作:
{
"rules": {
"posts": {
"$postId": {
// Anyone can read
".read": true,
// Some write condition
".write": ...,
// User can only write to create or delete, not edit
".validate": "!data.exists() || !newData.exists()"
}
}
}
}
在这种情况下,用户只能在的情况下写入RTDB!data.exists()
-即,如果操作运行前的数据不存在,或者如果,则创建新数据!newData.exists()
-即,如果操作后此记录中的新数据不再存在,则删除
您可以将这些规则结合起来,对数据和访问进行细粒度的控制。如果您需要更多的访问控制,而不是使用RTDB安全规则,那么您可以使用RTDB规则和创建云函数锁定数据,以使用服务器端逻辑和处理访问和修改RTDB
另外,请查看:
请在firebase数据库的文档中阅读。如果它在那里,那么我们可以使用它,否则,没有人可以帮助。Firebase文档是我一生中见过的最简单的文档。请在Firebase数据库的文档中阅读它们。如果它在那里,那么我们可以使用它,否则,没有人可以帮助。Firebase文档是我一生中见过的最简单的文档。