как извлечь изображение из хранилища Firebase и отобразить его на веб-странице, используя google-cloud и node js - PullRequest
0 голосов
/ 30 апреля 2018

Я храню свое изображение в хранилище FireBase, теперь я хочу отобразить его на своей странице

const firebase = require('./../config/firebase');
const gcloud = require('google-cloud');
const fs = require('fs');

var storage = gcloud.storage({
projectId: 'test-a1e76',
keyFilename: 'test-a1e76-firebase-adminsdk-7111d-124guy123eac.json',
});

var bucket = storage.bucket('test-a1e76.appspot.com');

вот так выглядит моя установка.

и это мой метод get.

router.get('/image', function (req,res) {

    var remoteReadStream = bucket.file('download.png').createReadStream();
    var localWriteStream = fs.createWriteStream('/images/watchers/2jIompF9FUZ6A4LnpBcbpHWw8dx2/download.png');
    var ss = remoteReadStream.pipe(localWriteStream);
    res.send(ss);
})

Я только попробовал это, так как это было написано на npm docs.of google-cloud works. я попытался поместить его внутрь метода get, чтобы увидеть, как он работает.

и после этого я получил эту ошибку ..

Error: ENOENT: no such file or directory, open 'C:\images\test\2jIoasd24zd13ase121s2Ww8dx2\download.png'

это мой метод получения ajax

 $.ajax({
    url:'/user/image',
    type:'GET',
    success:function(data){
      console.log(data.path);

    }
  });

Может ли кто-нибудь здесь рассказать о том, как я могу получить изображения из хранилища Firebase и отобразить их на моей веб-странице ?. используя это гугл-облако нпм? потому что я прочитал какую-то ветку, что узел js не поддерживает firebase-storage, поэтому вместо этого они используют google-cloud.

1 Ответ

0 голосов
/ 01 мая 2018

Вам нужно только показать изображение, верно? Есть грязный способ сделать.

1 - Загрузите одно изображение в ваше ведро и нажмите на него (в консоли Firebase).

2- В правой части экрана отображается информация о вашем файле.

3 - Найдите «Скачать URL» (или что-то в этом роде) и нажмите на него.

4- Это пример URL:

https://firebasestorage.googleapis.com/v0/b/coffee-a7e8c.appspot.com/o/coffeeTrue.png?alt=media&token=7f44e575-414d-4d18-8f39-c94a23f6e014

Как вы можете видеть, есть шаблон: https://firebasestorage.googleapis.com/v0/b/NAME_FILE?alt=media&token=YOUR_TOKEN

Получите свой токен, и теперь вы можете показывать все изображения на вашем ведре, только передавая имя файла и свой токен (как в этом примере).

Это работает, потому что Firebase предоставляет Rest API для ваших сервисов.

Помните: выполняйте авторизацию до или настройте открытые правила.

Пример: каждый может читать. Только авторизованный пользователь может писать.

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read: if request.auth == null;
      allow write: if request.auth != null;
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...