选择身份的html,html-用户角色的用户身份验证中是否有任何...

Firebase Auth没有“用户角色” API,但是您可以通过多种方法在应用程序中实现基于角色的授权.

数据库

正如您提到的,一种方法是将这些数据存储在数据库中.这样做的好处是易于实现.

您可以通过在Firestore和Realtime数据库的数据库规则中进行查找来实施规则.

{

"rules": {

"adminContent": {

".write": "root.child('users').child(auth.uid).child('admin').val() === true"

}

}

}

service cloud.firestore {

match /databases/{database}/documents {

match /articles/{article} {

allow write: if get(/databases/$(database)/documents/users/$(request.auth.uid)).data.admin == true

}

}

}

维护数据库中的角色和凭据的不利之处在于,您不能跨产品使用该信息.您不能编写访问RTDB规则的Firestore数据库规则,反之亦然.

海关索赔

如果您希望角色跨服务工作(在RTDB,Firestore和Firebase Storage中使用相同的角色数据),则应考虑设置自定义声明,这很好地解释了in the documentation.

设置完成后,您可以使用自定义声明在不同产品之间实施基于角色的或group access rights.

database.rules.json

{

"rules": {

"adminContent": {

".read": "auth.token.admin === true",

".write": "auth.token.admin === true",

}

}

}

firestore.rules / storage.rules

Firestore和Storage规则的规则语法相似,并且您发现两者的allow语句相同.

service cloud.firestore {

match /databases/{database}/documents {

match /{document=**} {

allow read, write: if request.auth.token.admin == true;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值