Get downloadURL продолжает выдавать ошибку «XMLHttpRequest не определен» с использованием Firebase - PullRequest
0 голосов
/ 14 апреля 2019

Я получаю сообщение «XMLHttpRequest не определен» при попытке загрузить downloadURL изображений, которые я только что загрузил в хранилище.Есть мысли о том, что здесь происходит?Я могу получить метаданные, но URL-адрес изображения не указан в схеме: /

Узел:

import firebase, { storage } from './firebase';
const serviceAccount = require('./serviceAccountKey.json');
const admin = require('firebase-admin');
const app = express()
const dbUrl = "https://authentication.firebaseio.com"

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: dbUrl,
  storageBucket: 'authentication.appspot.com'
});

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

......
bucket.upload(imageUrl).then(result => {
        const file = result[0];
        return file.getMetadata();
      }).then(results => {
          const ref = storage.ref('users/' + userRecord.uid + '/image').downloadURL();
          console.log(ref)
          //const metadata = results[0];
          //console.log('metadata=', metadata.mediaLink);
          //firebase.database().ref('users/' + userRecord.uid + '/image').set(metadata.mediaLink);
      }).catch(error => {
          console.error(error);
      });
    })
    .catch(function(error) {
      console.log("Error creating new user:", error);
    });

Хранение: enter image description here

1 Ответ

1 голос
/ 14 апреля 2019

Клиентские SDK Firebase для JavaScript в основном не поддерживаются для использования на NodeJS.Это объясняет вашу ошибку - XMLHttpRequest изначально доступен в браузерах, но не в узле.Если вы хотите запустить серверный код, который обращается к ресурсам Firebase и Google Cloud, вы должны использовать серверные SDK.

Firebase предоставляет серверные SDK через Firebase Admin SDK , который полностью работаетна узле.Для доступа к облачному хранилищу Admin SDK перепаковывает существующий облачный хранилище SDK, предоставляемое Google Cloud.

Обратите внимание, что отсутствует понятие «URL загрузки», предоставляемое Google Cloud SDK для облачного хранилища.У него есть нечто, называемое «подписанный URL», которое используется аналогично.

...