Я относительно новичок в firebase и в настоящее время работаю с приложением node.js (реагировать на электрон), моя цель - показать изображение, которое было сохранено в firebase-storage.
В моем приложении я знаю внутренний URL-адрес хранилища базы данных gs://myapp.appspot.com/folders/image.jpg
и хочу получить downloadableURL https://firebasestorage.googleapis.com/...
Так вот в чем проблема: я знаю, что есть метод refFromURL()
и getDownloadURL()
из хранилища Firebase, и я планировал сделать это
import firebase from 'firebase';
import config from './firebaseConfig.json';
firebase.initializeApp(config);
var storage = firebase.storage();
function fetchTrueImgsrc(internalSrc) {
if (internalSrc === undefined) return null;
return storage.refFromURL(internalSrc).getDownloadURL();
}
И я получил это
Строка 4: Uncaught TypeError: firebase__WEBPACK_IMPORTED_MODULE_1___default.a.storage не является функцией
Я обнаружил, что firebase.storage () больше не поддерживает node.js и весь документ на https://firebase.google.com/docs/storage/web/start
совершенно бесполезен для меня
Итак, вопрос в том, как бы я реализовал это на стороне клиента node.js, если я не могу использовать firebase.storage? пожалуйста, помогите.
Я пробовал:
const myappBucket='myapp.appspot.com';
import { Storage } from '@google-cloud/storage';
const bucket = new Storage().bucket(myappBucket);
const file = bucket.file(internalSrc);
file
.getSignedUrl({
action: 'read',
expires: '03-09-2491'
})
.then(signedUrls => {
console.log('signed URL', signedUrls[0]); // this will contain the picture's url
return;
})
.catch(err => console.error(err));
const myappBucket='myapp.appspot.com';
import config from './firebaseConfig.json';
import firebase_admin from 'firebase-admin';
firebase_admin.initializeApp(config);
var storage = firebase_admin.storage();
var bucket = storage.bucket(myappBucket);
bucket.file(internalSrc).getSignedUrl(
{
action: 'read',
expires: '03-09-2491'
},
function(err, url) {
if (err) {
console.error(err);
} else {
console.log('Download model DL url: ' + url);
}
}
);
Оба получили эту ошибку
SigningError: непредвиденная ошибка при определении среды выполнения: не удалось получить данные в GoogleAuth.
Я пытался избежать понижения firebase до firebase@v4.7.0, но если для этого нет решения, думаю, мне тоже стоит попробовать.
Я использую:
- "@ google-cloud / storage": "^ 2.5.0"
- "пожарная база": "^ 6.0.2"
- "firebase-admin": "^ 7.3.0"
- "реагировать": "^ 16.8.6"
- «электрон»: «^ 3.0.10»
спасибо.