npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@capacitor-firebase/storage

v6.2.0

Published

Capacitor plugin for Firebase Cloud Storage.

Downloads

1,065

Readme

@capacitor-firebase/storage

Unofficial Capacitor plugin for Firebase Cloud Storage.[^1]

Installation

npm install @capacitor-firebase/storage
npx cap sync

Add Firebase to your project if you haven't already (Android / iOS).

Android

Variables

This plugin will use the following project variables (defined in your app’s variables.gradle file):

  • $firebaseStorageVersion version of com.google.firebase:firebase-storage (default: 20.2.1)

Configuration

No configuration required for this plugin.

Demo

A working example can be found here: robingenz/capacitor-firebase-plugin-demo

Starter templates

The following starter templates are available:

Usage

import { FirebaseStorage } from '@capacitor-firebase/storage';
import { Filesystem, Directory } from '@capacitor/filesystem';

const uploadFile = async () => {
  return new Promise((resolve, reject) => {
    await FirebaseStorage.uploadFile(
      {
        path: 'images/mountains.png',
        uri: 'file:///var/mobile/Containers/Data/Application/E397A70D-67E4-4258-236E-W1D9E12111D4/Library/Caches/092F8464-DE60-40B3-8A23-EB83160D9F9F/mountains.png',
      },
      (event, error) => {
        if (error) {
          reject(error);
        } else if (event?.completed) {
          resolve();
        }
      }
    );
  });
};

const downloadFile = async () => {
  const { downloadUrl } = await FirebaseStorage.getDownloadUrl({
    path: 'images/mountains.png',
  });
  const { path } = await Filesystem.downloadFile({
    url: downloadUrl,
    path: 'mountains.png',
    directory: Directory.Cache,
  });
  return path;
};

const getDownloadUrl = async () => {
  const { downloadUrl } = await FirebaseStorage.getDownloadUrl({
    path: 'images/mountains.png',
  });
  return downloadUrl;
};

const deleteFile = async () => {
  await FirebaseStorage.deleteFile({
    path: 'images/mountains.png',
  });
};

const listFiles = async () => {
  const { items } = await FirebaseStorage.listFiles({
    path: 'images',
  });
  return items;
};

const getMetadata = async () => {
  const result = await FirebaseStorage.getMetadata({
    path: 'images/mountains.png',
  });
  return result;
};

const updateMetadata = async () => {
  await FirebaseStorage.updateMetadata({
    path: 'images/mountains.png',
    metadata: {
      contentType: 'image/png',
      customMetadata: {
        foo: 'bar',
      },
    },
  });
};

const useEmulator = async () => {
  await FirebaseStorage.useEmulator({
    host: '10.0.2.2',
    port: 9001,
  });
};

API

deleteFile(...)

deleteFile(options: DeleteFileOptions) => Promise<void>

Delete a file.

| Param | Type | | ------------- | --------------------------------------------------------------- | | options | DeleteFileOptions |

Since: 5.3.0


getDownloadUrl(...)

getDownloadUrl(options: GetDownloadUrlOptions) => Promise<GetDownloadUrlResult>

Get the download url for a file.

| Param | Type | | ------------- | ----------------------------------------------------------------------- | | options | GetDownloadUrlOptions |

Returns: Promise<GetDownloadUrlResult>

Since: 5.3.0


getMetadata(...)

getMetadata(options: GetMetadataOptions) => Promise<GetMetadataResult>

Get the metadata for a file.

| Param | Type | | ------------- | ----------------------------------------------------------------- | | options | GetMetadataOptions |

Returns: Promise<GetMetadataResult>

Since: 5.3.0


listFiles(...)

listFiles(options: ListFilesOptions) => Promise<ListFilesResult>

List files in a directory.

| Param | Type | | ------------- | ------------------------------------------------------------- | | options | ListFilesOptions |

Returns: Promise<ListFilesResult>

Since: 5.3.0


updateMetadata(...)

updateMetadata(options: UpdateMetadataOptions) => Promise<void>

Update the metadata for a file.

| Param | Type | | ------------- | ----------------------------------------------------------------------- | | options | UpdateMetadataOptions |

Since: 5.3.0


uploadFile(...)

uploadFile(options: UploadFileOptions, callback: UploadFileCallback) => Promise<CallbackId>

Upload a file.

| Param | Type | | -------------- | ----------------------------------------------------------------- | | options | UploadFileOptions | | callback | UploadFileCallback |

Returns: Promise<string>

Since: 5.3.0


useEmulator(...)

useEmulator(options: UseEmulatorOptions) => Promise<void>

Instrument your app to talk to the Cloud Storage emulator.

On Android, the cleartext traffic must be allowed. On the Capacitor configuration:

{
  server: {
    cleartext: true
  }
}

The cleartext traffic is not intended for use in production.

| Param | Type | | ------------- | ----------------------------------------------------------------- | | options | UseEmulatorOptions |

Since: 6.1.0


Interfaces

DeleteFileOptions

| Prop | Type | Description | Since | | ---------- | ------------------- | ------------------------------------------------------------- | ----- | | path | string | The full path to the file to delete, including the file name. | 5.3.0 |

GetDownloadUrlResult

| Prop | Type | Description | Since | | ----------------- | ------------------- | ------------------------------ | ----- | | downloadUrl | string | The download url for the file. | 5.3.0 |

GetDownloadUrlOptions

| Prop | Type | Description | Since | | ---------- | ------------------- | ------------------------------------------------------------------------------- | ----- | | path | string | The full path to the file to get the download url for, including the file name. | 5.3.0 |

GetMetadataResult

| Prop | Type | Description | Since | | ------------------------ | --------------------------------------- | --------------------------------------------------------------------------------- | ----- | | bucket | string | The bucket this file is contained in. | 5.3.0 | | createdAt | number | The timestamp at which the file was created in milliseconds since the epoch. | 5.3.0 | | generation | string | The object's generation. | 5.3.0 | | md5Hash | string | The md5 hash of the file. | 5.3.0 | | metadataGeneration | string | The object's metadata generation. | 5.3.0 | | name | string | The short name of this file, which is the last component of the full path. | 5.3.0 | | path | string | The full path to the file, including the file name. | 5.3.0 | | size | number | The size of the file in bytes. | 5.3.0 | | updatedAt | number | The timestamp at which the file was last updated in milliseconds since the epoch. | 5.3.0 | | cacheControl | string | Served as the Cache-Control header on object download. | 6.1.0 | | contentDisposition | string | Served as the Content-Disposition header on object download. | 6.1.0 | | contentEncoding | string | Served as the Content-Encoding header on object download. | 6.1.0 | | contentLanguage | string | Served as the Content-Language header on object download. | 6.1.0 | | contentType | string | Served as the Content-Type header on object download. | 6.1.0 | | customMetadata | { [key: string]: string; } | Additional user-defined custom metadata. | 6.1.0 |

GetMetadataOptions

| Prop | Type | Description | Since | | ---------- | ------------------- | --------------------------------------------------------------------------- | ----- | | path | string | The full path to the file to get the metadata for, including the file name. | 5.3.0 |

ListFilesResult

| Prop | Type | Description | Since | | ------------------- | ------------------------------- | ------------------------------------------------------------------------------------- | ----- | | items | StorageReference[] | The list of files in the directory. | 5.3.0 | | nextPageToken | string | If set, there might be more results for this list. Use this token to resume the list. | 5.3.0 |

StorageReference

| Prop | Type | Description | Since | | ------------ | ------------------- | -------------------------------------------------------------------------- | ----- | | bucket | string | The bucket this file is contained in. | 5.3.0 | | path | string | The full path to the file, including the file name. | 5.3.0 | | name | string | The short name of this file, which is the last component of the full path. | 5.3.0 |

ListFilesOptions

| Prop | Type | Description | Default | Since | | ---------------- | ------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------- | ----- | | path | string | The full path to the directory to list files for. | | 5.3.0 | | maxResults | number | The maximum number of results to return. | 1000 | 5.3.0 | | pageToken | string | The page token, returned by a previous call to this method. If provided, listing is resumed from the previous position. | | 5.3.0 |

UpdateMetadataOptions

| Prop | Type | Description | Since | | -------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------ | ----- | | path | string | The full path to the file to update the metadata for, including the file name. | 5.3.0 | | metadata | SettableMetadata | The metadata to update. | 5.3.0 |

SettableMetadata

| Prop | Type | Description | Since | | ------------------------ | --------------------------------------- | -------------------------------------------------------------- | ----- | | cacheControl | string | Served as the Cache-Control header on object download. | 5.3.0 | | contentDisposition | string | Served as the Content-Disposition header on object download. | 5.3.0 | | contentEncoding | string | Served as the Content-Encoding header on object download. | 5.3.0 | | contentLanguage | string | Served as the Content-Language header on object download. | 5.3.0 | | contentType | string | Served as the Content-Type header on object download. | 5.3.0 | | customMetadata | { [key: string]: string; } | Additional user-defined custom metadata. | 5.3.0 |

UploadFileOptions

| Prop | Type | Description | Since | | -------------- | --------------------------------------------------------- | --------------------------------------------------------------------- | ----- | | blob | Blob | The data to upload. Only available for Web. | 5.3.0 | | path | string | The full path where data should be uploaded, including the file name. | 5.3.0 | | uri | string | The uri to the file to upload. Only available for Android and iOS. | 5.3.0 | | metadata | UploadMetadata | The metadata to set for the file. | 5.4.0 |

UploadMetadata

| Prop | Type | Description | Since | | ------------- | ------------------- | ---------------------------------------------------------------- | ----- | | md5Hash | string | The base64-encoded MD5 hash of the file. Only available for Web. | 5.4.0 |

UploadFileCallbackEvent

| Prop | Type | Description | Since | | ---------------------- | -------------------- | ----------------------------------------------------------------------------------- | ----- | | progress | number | The upload progress, as a percentage between 0 and 1. | 5.3.0 | | bytesTransferred | number | The number of bytes that have been transferred. Only available for Android and Web. | 5.3.0 | | totalBytes | number | The total number of bytes to be transferred. Only available for Android and Web. | 5.3.0 | | completed | boolean | Whether the upload is completed or not. | 5.3.0 |

UseEmulatorOptions

| Prop | Type | Description | Default | Since | | ---------- | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ----- | | host | string | The emulator host without any port or scheme. Note when using a Android Emulator device: 10.0.2.2 is the special IP address to connect to the 'localhost' of the host computer. | | 6.1.0 | | port | number | The emulator port. | 9199 | 6.1.0 |

Type Aliases

UploadFileCallback

(event: UploadFileCallbackEvent | null, error: any): void

CallbackId

string

Changelog

See CHANGELOG.md.

License

See LICENSE.

[^1]: This project is not affiliated with, endorsed by, sponsored by, or approved by Google LLC or any of their affiliates or subsidiaries.