Как правила Firestore (аутентификации) видят облачную функцию чтения / записи и запускают функцию чтения / записи? - PullRequest
0 голосов
/ 23 апреля 2020

Я нахожусь в точке, где мне нужно начать устанавливать правила для моих данных в firestore. Однако в моем веб-приложении, хотя я запрашиваю данные непосредственно из Firestore, я почти никогда не пишу напрямую в него. Все записи выполняются с помощью облачных функций:

exports.post_content = functions.https.onRequest((request, response) => {
    db.collection(...)...().add(..)
        .then(...)
        .catch(...)
});

Есть также несколько случаев, когда данные записываются с помощью триггерных функций:

exports.on_content_write = functions.firestore.document('abc/xyz/...').onCreate(..);

Почти каждое выполнение c или учебник, который я имею В правилах поиска в пожарном хранилище предполагается, что данные записываются (или читаются) веб-пользователем, который либо прошел проверку подлинности, либо не прошел проверку подлинности. Но какой «пользователь» проверяет firestore, когда запись идет через http-запрос (например, post_content)? Поскольку post_content, сам по себе вызываемый клиентом (через Интернет или с помощью curl или чего-либо еще), передаются ли эти учетные данные в firestore?

Как насчет того, когда функции запускаются автоматически?

1 Ответ

1 голос
/ 23 апреля 2020

Пользователь не подразумевает HTTP-запросы. Когда вы используете Firebase Admin SDK (или любой серверный SDK для Firestore), вы инициализируете его служебной учетной записью, которая будет иметь полный контроль над базой данных, полностью обходя все правила безопасности.

Если вы надеетесь имитировать запись как аутентифицированного пользователя в коде, выполняемом в облачных функциях (или любом другом бэкэнде), что невозможно в Firestore. Лучшее, что вы можете сделать, это передать токен ID авторизации от клиента к функции, , проверить его с помощью Admin SDK и решить в своем коде, хотите ли вы разрешить запись для этого пользователя. Вы просто не сможете использовать правила безопасности в этой ситуации.

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