@capacitor-firebase/storage v6.0.0
@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 ofcom.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',
},
},
});
};
API
deleteFile(...)
getDownloadUrl(...)
getMetadata(...)
listFiles(...)
updateMetadata(...)
uploadFile(...)
- Interfaces
- Type Aliases
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
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 |
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 |
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.
23 days ago
2 months ago
3 months ago
4 months ago
5 months ago
7 months ago
7 months ago