Как пройти аутентификацию с помощью Firebase Admin SDK? - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть база данных Firebase Realtime. У меня есть пользователь с адресом электронной почты и паролем:

enter image description here

У меня также есть несколько правил:

{
  "rules": {
    ".read": true,
    "blogposts": {
      ".write": "auth !== null"
    }
  }
}

Как вы можете видеть исходя из правил, я не хочу, чтобы кто-нибудь писал в посты, если только auth не равен null. Я предполагаю, что если я смогу войти в систему с использованием указанных выше учетных данных, auth не будет иметь значение null (исправьте меня, если я ошибаюсь).

Я использую Firebase Admin SDK на моем сервере. Я сгенерировал файл ключа здесь:

enter image description here

Файл ключа находится на моем сервере, и я использую его для инициализации Firebase Admin:

const serviceAccount = require('my-key-file.json');
fbadmin.initializeApp({
    credential: fbadmin.credential.cert(serviceAccount),
    databaseURL: '...'
});

На данный момент, я не уверен, как пройти аутентификацию с учетными данными пользователя выше. Как я могу 1) аутентифицироваться с пользователем выше и 2) установить аутентификацию в правилах выше, чтобы не нуль? Спасибо.

1 Ответ

0 голосов
/ 13 апреля 2020

Admin SDK не поддерживают операции аутентификации пользователя. Для этого вы должны быть одним из клиентских SDK Firebase (Android, IOS, Web et c). Кроме того, запросы к базе данных, исходящие из Admin SDK, по умолчанию не проверяются правилами безопасности. Хотя вы можете заставить SDK выдавать запросы к базе данных, как если бы они поступали от определенного заранее определенного пользователя: c 1002 * -with-limited-привилегий

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