Firebase Admin SDK для загрузки / получения файлов в Google Cloud Storage - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь загрузить некоторые изображения, которые я загрузил, в свое облачное хранилище Google (иначе говоря, в корзины).Я не могу использовать метод .ref () на любом из моих const storage или const bucket, потому что они являются частью SDK администратора.В admin.storage есть только метод .bucket () (https://firebase.google.com/docs/reference/admin/node/admin.storage.Storage).

. Я могу получить доступ к контейнерам. Bucket.getFiles () работает, и в результате получается объект Array of Filesс кучей метаданных (например, имя файла, владелец корзины и т. д.). Как я могу получить свои изображения из облачного хранилища и вставить их в объекты HTML?

var admin = require("firebase-admin");

var serviceAccount = require("./randomDB-f12d3-admin-correctly-working.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://randomDB-f12d3.firebaseio.com",
  storageBucket: "randomDB-f12d3.appspot.com"
});

const gcs  = require("@google-cloud/storage");
gcs.projectId = "randomDB-f12d3";
gcs.keyFilename = "randomDB-f12d3-firebase-admin-correctly-working.json";

exports.getFile = functions.https.onRequest((req, res) => {
  
  cors(req, res, () => {
    if (req.method !== "GET") {
      return res.status(500).json({
        message: "Not allowed"
      });
    }

    const storage = admin.storage();
    const bucket = admin.storage().bucket();

    bucket.getFiles().then((result)=>{
      
      console.log(result);
      res.send(result);
    });

  });

});

1 Ответ

0 голосов
/ 03 декабря 2018

Admin SDK для облачного хранилища - это просто оболочка для @ google-cloud / storage module .Когда вы вызываете admin.storage(), вы получаете объект Storage из этой библиотеки.С admin.storage().bucket() вы получаете хранилище по умолчанию Bucket для вашего проекта.Оттуда вы должны использовать file(), чтобы создать ссылку на файлы в этом сегменте и загрузить их по мере необходимости.

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