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
JavaScript
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;
;