Это случилось со мной в 5.0.4. Ответ hsc все еще исправил это все же.
ользую Jest для проверки своих функций Firebase. Это все в браузере, поэтому у меня нет конфликтов с firebase на стороне сервера. Когда я используюfirebase.auth()
или жеfirebase.database()
все отлично работает Когда я пытаюсь использоватьfirebase.storage()
мои тесты не пройдены.
Вот мой импорт и инициализация firebase:
import firebase from 'firebase';
import config from '../config';
export const firebaseApp = firebase.initializeApp(config.FIREBASE_CONFIG);
export const firebaseAuth = firebaseApp.auth();
export const firebaseDb = firebaseApp.database();
У меня есть файл imageUtils, в котором есть функция загрузки:
import { firebaseApp } from './firebase';
export const uploadImage = (firebaseStoragePath, imageURL) => {
return new Promise((resolve, reject) => {
// reject if there is no imagePath provided
if (!firebaseStoragePath) reject('No image path was provided. Cannot upload the file.');
// reject if there is no imageURL provided
if (!imageURL) reject('No image url was provided. Cannot upload the file');
// create the reference
const imageRef = firebaseApp.storage().ref().child(firebaseStoragePath);
let uploadTask;
// check if this is a dataURL
if (isDataURL(imageURL)) {
// the image is a base64 image string
// create the upload task
uploadTask = imageRef.putString(imageURL);
} else {
// the image is a file
// create the upload task
uploadTask = imageRef.put(imageURL);
}
// monitor the upload process for state changes
const unsub = uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED,
(snapshot) => {
// this is where we can check on progress
}, (error) => {
reject(error.serverResponse);
unsub();
}, () => {
// success function
resolve(uploadTask.snapshot.downloadURL);
unsub();
});
});
};
И я пытаюсь создать контрольный пример для этой функции, и каждый раз, когда она завершается с ошибкой:
TypeError: _firebase3.firebaseApp.storage is not a function
Когда я запускаю приложение нормально, все работает нормально, и я никогда не получаю ошибки о том, что storage () не определено или не является функцией. Это только когда я пытаюсь запустить контрольный пример.
Я установилconsole.dir(firebaseApp);
строка в импорте Firebase, и он возвращается с обоимиauth()
а такжеdatabase()
но нет хранения. Как я могу получить хранилище для импорта / инициализации / существовать должным образом?