Node.js интеграция с пожарной базой - PullRequest
0 голосов
/ 22 апреля 2020

Надеюсь, вы мне поможете. Я делаю API с Node.js (без сохранения состояния), подключенным к firebase. Основная цель - создать пользователей и работать с коллекциями (добавлять, редактировать, консультироваться) информацию. Я использую следующий модуль firebase.

const firebase = require('firebase');
firebase.initializeApp(firebaseConfig);

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

code пример:

const db = firebase.firestore();
let botRef = db.collection('bot').doc(bot.botId);
botRef.get().then(function(doc) {
    if (doc.exists) {
        botRef.update({ color: bot.color, botname: bot.botname, welcomemessage: bot.welcomemessage });

Что мне делать? или я должен использовать модуль администратора Firebase? поскольку в этом API нет логина для firebase (поскольку это API без состояния), спасибо за вашу помощь

Ответы [ 2 ]

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

Замените модули следующим образом:

import * as functions from 'firebase-functions';
import admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

Кстати, не забудьте установить firebase-admin перед развертыванием вашей программы. Запустите эту команду, чтобы установить ее:

$ npm install firebase-admin --save в вашем терминале.

Это предоставит права администратора вашим облачным функциям, что означает отсутствие ограничений на чтение или запись данных.

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

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

Для этого вы должны использовать Firebase Admin SDK. Он просто оборачивает SDK Google Cloud Firestore для узла, поэтому у него тот же API, что и у.

Вам нужно будет инициализировать SDK с помощью учетной записи службы. Тогда ваш код будет иметь полный доступ на чтение и запись ко всему в базе данных, минуя все правила безопасности, которые вы установили для реальных пользователей.

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