Использование хранилища FireBase в реакции - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь загрузить PDF-файлы, созданные с помощью dataToUrl, в firebase, но я получаю хранилище 403. Несанкционированно.

Я сделал npm i @ firebase / storage --save и в моем пакете. json он говорит:

"@firebase/storage": "^0.3.32",

У меня есть файл firebase. js, в котором хранятся мои учетные данные firebase:

import * as firebase from 'firebase';
import 'firebase/auth';
import 'firebase/firestore';
import '@firebase/storage';

const firebaseConfig = {
    ...my details here
};

firebase.initializeApp(firebaseConfig);

export default firebase;

Если я попытаюсь инициализировать корзину хранения, как сказано в документы, то он не загружается:

const bucket = "my-app-xxxxx.appspot.com/";

firebase.initializeApp(
    {
        credential: firebaseConfig, 
        storageBucket: bucket
    }
 );

Мой код, чтобы превратить DOM в JPEG, затем jpeg в pdf, затем сохраните pdf так:

import firebase from '../../Utils/firebase';

import uuid from 'react-uuid'
import 'firebase/auth';
import 'firebase/firestore';
import '@firebase/storage';


domtoimage.toJpeg(node, {width: reportInViewerRef.current.offsetWidth * 2, height: reportInViewerRef.current.scrollHeight * 2})
            .then(function (dataUrl) {
                const pdf = new jsPDF('p', 'px', [reportHeight - 20, reportWidth]);

                pdf.addImage(dataUrl, 'JPEG', 0, -12, reportWidth, reportHeight);
                pdf.save("download.pdf"); 

                var storageRef = firebase.storage().ref();
                var fileLocation = getUniqueFilename() + '.jpg'
                var reportPdfRef = storageRef.child(fileLocation);
                reportPdfRef.putString(dataUrl, 'data_url').then(function(snapshot) {
                    console.log('Uploaded a data_url string!', reportPdfRef);

                  });
                // download(dataUrl, 'my-node.jpg')
            })
        .catch(function (error) {
            console.error('oops, something went wrong!', error);
        });

Мои правила хранения:

rules_version = '2';
service firebase.storage {
  match /b/my-app-xxxxx.appspot.com/o {
    match /{allPaths=**} {
      allow read, write: if request.auth != null;
    }
  }
}

Любое понимание приветствуется!

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