允许管理员读取Firebase实时数据库中的所有用户的规则

时间:2020-10-01 23:15:30

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

我打算创建一个面板,其中显示我的用户的(名称,积分,余额)卡。 但是我遇到了一个问题,我不知道是否可以在Firebase规则中或在我的Javascript中显示这些值。

我想允许 jNKXLBj39Kdd9vcRAcQ6xl4dzws1 读写数据库

我在Firebase中的规则

{
    "rules": {
        "admin": {
            "$uid": {
            ".read": "root.child('users').child(auth.uid).val() == 'jNKXLBj39Kdd9vcRAcQ6xl4dzws1'",
            ".write": "root.child('users').child(auth.uid).val() == 'jNKXLBj39Kdd9vcRAcQ6xl4dzws1'"
            }
        },
        "users": {
            "$uid": {
            ".read": "$uid === auth.uid",
            ".write": "$uid === auth.uid"
            }
        }
    }
}

我在网站上的代码

 uid = user.uid;
    firebase.database().ref('users').child(uid).on('child_added', function (snapshot) {

        function mascara(v) {
            v = v.replace(/\D/g, "");
            v = new String(Number(v));
            var len = v.length;
            if (1 == len)
                v = v.replace(/(\d)/, "0,0$1");
            else if (2 == len)
                v = v.replace(/(\d)/, "0,$1");
            else if (len > 2) {
                v = v.replace(/(\d{2})$/, ',$1');
                if (len > 5) {
                    var x = len - 5,
                        er = new RegExp('(\\d{' + x + '})(\\d)');
                    v = v.replace(er, '$1.$2');
                }
            }
            return v;
        }

        var data =
            "<div class='card mx-1 my-1'>" +
            "<div class='card-body'>" +
            "<h5 class='card-title'>" + snapshot.child('current_username').val() + "</h5>" +
            "<h6 class='card-subtitle mb-2 text-muted'>" + snapshot.child('current_points').val() + "</h6>" +
            "<p class='card-text'>R$ " + (mascara('' + snapshot.child('current_points').val() + '')) + "</p>" +
            "</div>" +
            "</div>";
        $("#poster").html($("#poster").html() + data);
    });

});

我在信息中心中的搜索结果

enter image description here

预期结果是几张卡片(名称,积分,余额)

0 个答案:

没有答案