如何限制用户根据Firebase规则中的电话号码读写数据

时间:2018-11-12 09:59:18

标签: firebase firebase-security-rules

当前,我已经实现了类似于下面的项目文件夹结构

Project folder structure

我已在代码中添加了电话验证。

现在,借助Firebase规则,我想限制我的用户基于经过身份验证的电话号码访问孩子(电话号码1)。

例如,如果我使用电话号码“ 9999999999”登录,那么我想限制用户只能访问Firebase规则中的“ 9999999999”子级。

您能在这里建议我提高这里的安全性吗?

1 个答案:

答案 0 :(得分:2)

您可以从users auth object访问电话号码,因此您可以使用它来限制安全性规则。以下是Firestore,RTDB和存储中的示例

Firestore

match /databases/{database}/documents {
    match /users/{phoneNumber} {
      allow read, write: if request.auth.token.phone_number == phoneNumber;
    }
}

实时数据库

{
    "rules" : {
        "users" : {
            "$phoneNumber" : {
                ".read" : "request.auth.token.phone_number == $phoneNumber",
                ".write" : "request.auth.token.phone_number == $phoneNumber"
            }
        }
    }
}

存储

service firebase.storage {
    match /b/{bucket}/o {
        match /users/{phoneNumber} {
            allow read, write: if request.auth.token.phone_number == phoneNumber;
        }
    }
}