无法正确构建Firebase数据库安全规则

时间:2016-12-02 14:06:55

标签: json firebase firebase-realtime-database firebase-security

在我的iOS应用中,用户创建的用户名与Twitter用户名具有相似的特征。一旦被识别为唯一,它将使用具有以下签名的updateChildValues持久保存到数据库:(用户名是示例中的JogBloggs)。

     ["usernames/": ["joebloggs: \(user.uid)"]]

在我的fb数据库的安全规则中,我想创建一个规则,确保上传的uid与当前用户的uid相同。我怎么能输入安全规则来确保这一点?我的尝试,下面,不起作用。

     "root.child('usernames').child(newData.val()).val() == auth.uid"

我的数据库中有以下结构

enter image description here

这些规则与:

相关联

Firebase Security structure

干杯

1 个答案:

答案 0 :(得分:1)

好的,如果可以,那么我会删除这个问题!! 答案非常复杂和具有挑战性......

    newData.val() == auth.uid

完整结构,正确答案如下

    "usernames": {  
    ".read": "auth != null",
    ".write": "auth != null && auth.token.name == null", 
            "$username": {
                ".validate": "$username.length >= 1 && $username.length <= 15 &&
                          !root.child('usernames').child(newData.val().toLowerCase()).exists() &&
                                    newData.val() == auth.uid" 
        }
    }