Firebase при вызове функции htpps.oncall не отправляет контекстную информацию в правила безопасности - PullRequest
0 голосов
/ 28 апреля 2019

Firebase при вызове функции (functions.https.onCall) не отправляет значения параметров контекста правилам безопасности.Это означает, что если из пользовательского интерфейса мы вызываем функцию firebase on call, чтобы обновить что-то для firestore db, мне нужно выполнить все проверки безопасности в этой функции и использовать admin sdk для обновления firestore db.Я не могу использовать правила безопасности firebase sdk и firestore для аутентифицированных обновлений.

export const registerOrganizationTest = functions.https.onCall(async (data, context) => {
  try {   firebase.firestore().collection('Organizations').doc('counts').get()
await firebase.firestore().collection('Organizations').doc('counts').set(orgcounts, { merge: true })
        await firebase.firestore().collection('Organizations').
            doc((orgcounts.organizationCount).toString()).
            set(organization, { merge: true })
    }
    catch (err) {
        throw new functions.https.HttpsError("internal", err);
    }
})

Firestore останавливает обновления при нарушении правил безопасности.Но если те же операторы запускаются из пользовательского интерфейса, они передаются как контекстный параметр, доступный правилам безопасности.

1 Ответ

1 голос
/ 28 апреля 2019

Правила безопасности не применяются к бэкэнд-коду. Когда вы вызываете облачную функцию или какой-либо другой внутренний код, который использует Admin SDK или другие Cloud SDK для внутренних компонентов, весь доступ из этого кода полностью обходит правила безопасности. Правила безопасности применяются только при прямом доступе к Firestore из SDK для мобильных устройств и веб-клиентов (Android, iOS, Unity и т. Д.).

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