Как задать правила, позволяющие кому-либо читать определенную пару ключ / значение - PullRequest
0 голосов
/ 16 мая 2019

Я пытаюсь разрешить любому пользователю видеть только параметры name и email.

    "users": {
        "kanyesUID": {
            "name": "Kanye West",
            "email": "kwest@gmail.com",
            "sensitive_info": "a"
        },
        "taylorsUID": {
            "name": "Taylor Swift",
            "email": "tswift@gmail.com",
            "sensitive_info": "a"
        },
        "seacrestsUID": {
            "name": "Ryan Seacrest",
            "email": "rseacrest@gmail.com",
            "isAdmin": true
        }
     }

Для следующего кода я должен получить этот вывод:

        "kanyesUID": {
            "name": "Kanye West",
            "email": "kwest@gmail.com"
        },
        "taylorsUID": {
            "name": "Taylor Swift",
            "email": "tswift@gmail.com"
        },
        "seacrestsUID": {
            "name": "Ryan Seacrest",
            "email": "rseacrest@gmail.com"
        }
firebase.database().ref('/users/').once('value').then(function(snapshot) {
    print_snapshot_json(snapshot);
});

Какими должны быть правила, чтобы это произошло?

1 Ответ

1 голос
/ 16 мая 2019

Вы не можете сделать это с правилами безопасности.Вы пытаетесь использовать правила безопасности в качестве фильтра, чтобы определить, какие поля появятся в результатах поиска, но это не поддерживается.Запрос должен иметь возможность читать все данные, которые будут возвращены запросом.Вместо этого вы можете разделить открытые и закрытые поля каждого пользователя на отдельные узлы верхнего уровня, чтобы их можно было запрашивать и защищать отдельно.

Для получения дополнительной информации, пожалуйста, прочитайте документацию, в частности, разделпод названием " правила не являются фильтрами ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...