Firebase身份验证数据库规则
我正在开发连接到dev firebase所需的应用程序。 此firebase具有以下数据库规则:Firebase身份验证数据库规则,firebase,firebase-realtime-database,firebase-authentication,google-authentication,Firebase,Firebase Realtime Database,Firebase Authentication,Google Authentication,我正在开发连接到dev firebase所需的应用程序。 此firebase具有以下数据库规则: "rules": { // no read access at root level ".read": "auth.uid === 'emailaddressgmailcom'", ".write": false, 我无法理解的是,如何将auth.uid指定为确切的电子邮件地址? 据我所知,我只得到谷歌提供的唯一uid。(一组数字和字母) 因此,除非我在数据库规则中指定
"rules": {
// no read access at root level
".read": "auth.uid === 'emailaddressgmailcom'",
".write": false,
我无法理解的是,如何将auth.uid
指定为确切的电子邮件地址?
据我所知,我只得到谷歌提供的唯一uid。(一组数字和字母)
因此,除非我在数据库规则中指定Google提供的确切的uid
,否则我永远无法传递从数据库读取的身份,这不是一个选项,因为将有另一个用户需要访问数据库,而我不知道他的uid
是其中之一
通过执行auth.uid
,您将获得用户id(“保证在所有提供程序中都是唯一的”)
您需要在安全规则中使用它来定义给定用户对一个或多个给定资源的访问权限,如文档中所述
如果某个资源应由唯一用户读取,则可以将其与固定值进行比较:
".read": "auth.uid === 'HGH656675FHGFGHF3454'"
但通常将其与要保护的节点/资源路径的某些部分进行比较,例如:
{
"rules": {
"users": {
"$user_id": {
// grants write access to the owner of this user account
// whose uid must exactly match the key ($user_id)
".write": "$user_id === auth.uid"
}
}
}
}
这就是您应该如何解决您的问题“将有另一个用户需要访问数据库,但我不知道他的uid
”
我建议您阅读有关RTDB安全规则的完整部分,了解更多详细信息:是其中一个 通过执行
auth.uid
,您将获得用户id(“保证在所有提供程序中都是唯一的”)
您需要在安全规则中使用它来定义给定用户对一个或多个给定资源的访问权限,如文档中所述
如果某个资源应由唯一用户读取,则可以将其与固定值进行比较:
".read": "auth.uid === 'HGH656675FHGFGHF3454'"
但通常将其与要保护的节点/资源路径的某些部分进行比较,例如:
{
"rules": {
"users": {
"$user_id": {
// grants write access to the owner of this user account
// whose uid must exactly match the key ($user_id)
".write": "$user_id === auth.uid"
}
}
}
}
这就是您应该如何解决您的问题“将有另一个用户需要访问数据库,但我不知道他的uid
”
我建议您阅读有关RTDB安全规则的完整部分,以了解更多详细信息:请尝试以下规则
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
//这些规则授予对与经过身份验证的节点匹配的节点的访问权限
//来自Firebase身份验证令牌的用户ID请尝试以下规则
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
//这些规则授予对与经过身份验证的节点匹配的节点的访问权限
//Firebase身份验证令牌中的用户ID