Как заставить Firebase Cloud функционировать с полными полномочиями администратора по чтению / записи на хранилище? - PullRequest
0 голосов
/ 06 марта 2019

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

Я заменил FireBase SDK на Admin SDK, но я обнаружил, что мой firebase.storage() .ref ссылка больше не работает, и, прочитав несколько документов, я понял, что теперь мне нужно использовать систему облачных сервисов Google.

Итак, мой вопрос, есть ли способ получить облако?у функции есть полномочия администратора для всего проекта Firebase без необходимости переключаться на облачные функции Google, и если нет, то есть ли способ сделать это так, чтобы я мог как-то разрешить своей облачной функции иметь полные полномочия чтения / записи для всего хранилища?Я озадачен!

Вот фрагмент моего кода:

const firebase = require('firebase-admin');

const functions = require('firebase-functions');

require("firebase-admin")
require("firebase")
require("firebase/storage");

var serviceAccount = require("serviceAccount.json");

var config = {
    [...]
    credential: firebase.credential.cert(serviceAccount)
  };
  firebase.initializeApp(config);

  var storage = firebase.storage();
  var storageRef = storage.ref(); //This returns .ref() is not a function

1 Ответ

0 голосов
/ 06 марта 2019

Клиентские библиотеки Firebase не предназначены для работы в средах внутреннего сервера.Firebase Admin SDK предназначен для бэкэндов, но API для доступа к облачному хранилищу отличается от клиентского SDK.Admin SDK просто включает SDK сервера облачного хранилища.Таким образом, для узловых сред вы просто собираетесь использовать клиент Cloud Storage Node.js .

Когда вы звоните:

const admin = require('firebase-admin')
const storage = admin.storage()

вы получаете Хранилище Объект из узла SDK.У него нет метода ref ().Вам нужно будет получить объект Bucket и использовать его вместо этого:

const bucket = storage.bucket()

Здесь вы должны продолжать использовать документы API, на которые я ссылаюсь.

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