UNPKG

react-native-firebase-compiled

Version:

A well tested, feature rich Firebase implementation for React Native, supporting iOS & Android. Individual module support for Admob, Analytics, Auth, Crash Reporting, Cloud Firestore, Database, Dynamic Links, Functions, Messaging (FCM), Remote Config, Sto

122 lines (91 loc) 3.68 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _ReferenceBase = _interopRequireDefault(require("../../utils/ReferenceBase")); var _task = _interopRequireWildcard(require("./task")); var _native = require("../../utils/native"); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /** * @url https://firebase.google.com/docs/reference/js/firebase.storage.Reference */ class StorageReference extends _ReferenceBase.default { constructor(storage, path) { super(path); _defineProperty(this, "_storage", void 0); this._storage = storage; } get fullPath() { return this.path; } toString() { return `gs://${this._storage.app.options.storageBucket}${this.path}`; } /** * @url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#child * @param path * @returns {StorageReference} */ child(path) { return new StorageReference(this._storage, `${this.path}/${path}`); } /** * @url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#delete * @returns {Promise.<T>|*} */ delete() { return (0, _native.getNativeModule)(this._storage).delete(this.path); } /** * @url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#getDownloadURL * @returns {Promise.<T>|*} */ getDownloadURL() { return (0, _native.getNativeModule)(this._storage).getDownloadURL(this.path); } /** * @url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#getMetadata * @returns {Promise.<T>|*} */ getMetadata() { return (0, _native.getNativeModule)(this._storage).getMetadata(this.path); } /** * @url https://firebase.google.com/docs/reference/js/firebase.storage.Reference#updateMetadata * @param metadata * @returns {Promise.<T>|*} */ updateMetadata(metadata = {}) { return (0, _native.getNativeModule)(this._storage).updateMetadata(this.path, metadata); } /** * Downloads a reference to the device * @param {String} filePath Where to store the file * @return {Promise} */ downloadFile(filePath) { return new _task.default(_task.DOWNLOAD_TASK, (0, _native.getNativeModule)(this._storage).downloadFile(this.path, filePath), this); } /** * Alias to putFile * @returns {StorageReference.putFile} */ get put() { return this.putFile; } /** * Upload a file path * @param {string} filePath The local path of the file * @param {object} metadata An object containing metadata * @return {Promise} */ putFile(filePath, metadata = {}) { let _filePath = filePath.replace('file://', ''); if (_filePath.includes('%')) _filePath = decodeURI(_filePath); return new _task.default(_task.UPLOAD_TASK, (0, _native.getNativeModule)(this._storage).putFile(this.path, _filePath, metadata), this); } } exports.default = StorageReference;