Skip to content

Commit 03f16b9

Browse files
authored
Add Perf and Storage snippets (#90)
1 parent d5f652d commit 03f16b9

File tree

10 files changed

+627
-0
lines changed

10 files changed

+627
-0
lines changed

perf-next/index.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,25 @@ const firebaseApp = initializeApp({
1010
});
1111
const perf = getInstance(firebaseApp);
1212

13+
function intialize() {
14+
// [START perf_initialize]
15+
const { initializeApp } = require("firebase/app");
16+
const { getPerformance } = require("firebase/performance");
17+
18+
// TODO: Replace the following with your app's Firebase project configuration
19+
// See: https://firebase.google.com/docs/web/setup#config-object
20+
const firebaseConfig = {
21+
// ...
22+
};
23+
24+
// Initialize Firebase
25+
const app = initializeApp(firebaseConfig);
26+
27+
// Initialize Performance Monitoring and get a reference to the service
28+
const perf = getPerformance(app);
29+
// [END perf_initialize]
30+
}
31+
1332
export function getInstance(firebaseApp) {
1433
// [START perf_get_instance]
1534
const { getPerformance } = require("firebase/performance");

perf/index.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,22 @@ import "firebase/performance";
33

44
const perf = firebase.performance();
55

6+
function intialize() {
7+
// [START perf_initialize]
8+
// TODO: Replace the following with your app's Firebase project configuration
9+
// See: https://firebase.google.com/docs/web/setup#config-object
10+
var firebaseConfig = {
11+
// ...
12+
};
13+
14+
// Initialize Firebase
15+
firebase.initializeApp(firebaseConfig);
16+
17+
// Initialize Performance Monitoring and get a reference to the service
18+
var perf = firebase.performance();
19+
// [END perf_initialize]
20+
}
21+
622
function addCustomTrace() {
723
// [START perf_add_custom_trace]
824
const trace = perf.trace("CUSTOM_TRACE_NAME");
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// This snippet file was generated by processing the source file:
2+
// ./perf-next/index.js
3+
//
4+
// To make edits to the snippets in this file, please edit the source
5+
6+
// [START perf_initialize_modular]
7+
import { initializeApp } from "firebase/app";
8+
import { getPerformance } from "firebase/performance";
9+
10+
// TODO: Replace the following with your app's Firebase project configuration
11+
// See: https://firebase.google.com/docs/web/setup#config-object
12+
const firebaseConfig = {
13+
// ...
14+
};
15+
16+
// Initialize Firebase
17+
const app = initializeApp(firebaseConfig);
18+
19+
// Initialize Performance Monitoring and get a reference to the service
20+
const perf = getPerformance(app);
21+
// [END perf_initialize_modular]

storage/create-reference.js

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
import firebase from "firebase/app";
2+
import "firebase/storage";
3+
4+
function createRef() {
5+
// [START storage_create_ref]
6+
// Get a reference to the storage service, which is used to create references in your storage bucket
7+
var storage = firebase.storage();
8+
9+
// Create a storage reference from our storage service
10+
var storageRef = storage.ref();
11+
// [END storage_create_ref]
12+
}
13+
14+
function createRefChild() {
15+
const storageRef = firebase.storage().ref();
16+
17+
// [START storage_create_ref_child]
18+
// Create a child reference
19+
var imagesRef = storageRef.child('images');
20+
// imagesRef now points to 'images'
21+
22+
// Child references can also take paths delimited by '/'
23+
var spaceRef = storageRef.child('images/space.jpg');
24+
// spaceRef now points to "images/space.jpg"
25+
// imagesRef still points to "images"
26+
// [END storage_create_ref_child]
27+
}
28+
29+
function navigateRef() {
30+
const spaceRef = firebase.storage().ref().child('images/space.jpg');
31+
32+
// [START storage_navigate_ref]
33+
// Parent allows us to move to the parent of a reference
34+
var imagesRef = spaceRef.parent;
35+
// imagesRef now points to 'images'
36+
37+
// Root allows us to move all the way back to the top of our bucket
38+
var rootRef = spaceRef.root;
39+
// rootRef now points to the root
40+
// [END storage_navigate_ref]
41+
}
42+
43+
function navigateRefChain() {
44+
const spaceRef = firebase.storage().ref().child('images/space.jpg');
45+
46+
// [START storage_navigate_ref_chain]
47+
// References can be chained together multiple times
48+
var earthRef = spaceRef.parent.child('earth.jpg');
49+
// earthRef points to 'images/earth.jpg'
50+
51+
// nullRef is null, since the parent of root is null
52+
var nullRef = spaceRef.root.parent;
53+
// [END storage_navigate_ref_chain]
54+
}
55+
56+
function refProperties() {
57+
const spaceRef = firebase.storage().ref().child('images/space.jpg');
58+
59+
// [START storage_ref_properties]
60+
// Reference's path is: 'images/space.jpg'
61+
// This is analogous to a file path on disk
62+
spaceRef.fullPath;
63+
64+
// Reference's name is the last segment of the full path: 'space.jpg'
65+
// This is analogous to the file name
66+
spaceRef.name;
67+
68+
// Reference's bucket is the name of the storage bucket where files are stored
69+
spaceRef.bucket;
70+
// [END storage_ref_properties]
71+
}
72+
73+
function refFullExample() {
74+
// [START storage_ref_full_example]
75+
// Points to the root reference
76+
var storageRef = firebase.storage().ref();
77+
78+
// Points to 'images'
79+
var imagesRef = storageRef.child('images');
80+
81+
// Points to 'images/space.jpg'
82+
// Note that you can use variables to create child values
83+
var fileName = 'space.jpg';
84+
var spaceRef = imagesRef.child(fileName);
85+
86+
// File path is 'images/space.jpg'
87+
var path = spaceRef.fullPath;
88+
89+
// File name is 'space.jpg'
90+
var name = spaceRef.name;
91+
92+
// Points to 'images'
93+
var imagesRef = spaceRef.parent;
94+
// [END storage_ref_full_example]
95+
}

storage/delete-files.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import firebase from "firebase/app";
2+
import "firebase/storage";
3+
4+
function deleteFile() {
5+
const storageRef = firebase.storage().ref();
6+
7+
// [START storage_delete_file]
8+
// Create a reference to the file to delete
9+
var desertRef = storageRef.child('images/desert.jpg');
10+
11+
// Delete the file
12+
desertRef.delete().then(() => {
13+
// File deleted successfully
14+
}).catch((error) => {
15+
// Uh-oh, an error occurred!
16+
});
17+
// [END storage_delete_file]
18+
}

storage/download-files.js

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
import firebase from "firebase/app";
2+
import "firebase/storage";
3+
4+
function downloadCreateRef() {
5+
// [START storage_download_create_ref]
6+
// Create a reference with an initial file path and name
7+
var storage = firebase.storage();
8+
var pathReference = storage.ref('images/stars.jpg');
9+
10+
// Create a reference from a Google Cloud Storage URI
11+
var gsReference = storage.refFromURL('gs://bucket/images/stars.jpg');
12+
13+
// Create a reference from an HTTPS URL
14+
// Note that in the URL, characters are URL escaped!
15+
var httpsReference = storage.refFromURL('https://firebasestorage.googleapis.com/b/bucket/o/images%20stars.jpg');
16+
// [END storage_download_create_ref]
17+
}
18+
19+
function downloadViaUrl() {
20+
const storageRef = firebase.storage().ref();
21+
22+
// [START storage_download_via_url]
23+
storageRef.child('images/stars.jpg').getDownloadURL()
24+
.then((url) => {
25+
// `url` is the download URL for 'images/stars.jpg'
26+
27+
// This can be downloaded directly:
28+
var xhr = new XMLHttpRequest();
29+
xhr.responseType = 'blob';
30+
xhr.onload = (event) => {
31+
var blob = xhr.response;
32+
};
33+
xhr.open('GET', url);
34+
xhr.send();
35+
36+
// Or inserted into an <img> element
37+
var img = document.getElementById('myimg');
38+
img.setAttribute('src', url);
39+
})
40+
.catch((error) => {
41+
// Handle any errors
42+
});
43+
// [END storage_download_via_url]
44+
}
45+
46+
function downloadFullExample() {
47+
const storageRef = firebase.storage().ref();
48+
49+
// [START storage_download_full_example]
50+
// Create a reference to the file we want to download
51+
var starsRef = storageRef.child('images/stars.jpg');
52+
53+
// Get the download URL
54+
starsRef.getDownloadURL()
55+
.then((url) => {
56+
// Insert url into an <img> tag to "download"
57+
})
58+
.catch((error) => {
59+
// A full list of error codes is available at
60+
// https://firebase.google.com/docs/storage/web/handle-errors
61+
switch (error.code) {
62+
case 'storage/object-not-found':
63+
// File doesn't exist
64+
break;
65+
case 'storage/unauthorized':
66+
// User doesn't have permission to access the object
67+
break;
68+
case 'storage/canceled':
69+
// User canceled the upload
70+
break;
71+
72+
// ...
73+
74+
case 'storage/unknown':
75+
// Unknown error occurred, inspect the server response
76+
break;
77+
}
78+
});
79+
// [END storage_download_full_example]
80+
}

storage/file-metadata.js

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import firebase from "firebase/app";
2+
import "firebase/storage";
3+
4+
function getMetadata() {
5+
const storageRef = firebase.storage().ref();
6+
7+
// [START storage_get_metadata]
8+
// Create a reference to the file whose metadata we want to retrieve
9+
var forestRef = storageRef.child('images/forest.jpg');
10+
11+
// Get metadata properties
12+
forestRef.getMetadata()
13+
.then((metadata) => {
14+
// Metadata now contains the metadata for 'images/forest.jpg'
15+
})
16+
.catch((error) => {
17+
// Uh-oh, an error occurred!
18+
});
19+
// [END storage_get_metadata]
20+
}
21+
22+
function updateMetadata() {
23+
const storageRef = firebase.storage().ref();
24+
25+
// [START storage_update_metadata]
26+
// Create a reference to the file whose metadata we want to change
27+
var forestRef = storageRef.child('images/forest.jpg');
28+
29+
// Create file metadata to update
30+
var newMetadata = {
31+
cacheControl: 'public,max-age=300',
32+
contentType: 'image/jpeg'
33+
};
34+
35+
// Update metadata properties
36+
forestRef.updateMetadata(newMetadata)
37+
.then((metadata) => {
38+
// Updated metadata for 'images/forest.jpg' is returned in the Promise
39+
}).catch((error) => {
40+
// Uh-oh, an error occurred!
41+
});
42+
// [END storage_update_metadata]
43+
}
44+
45+
function deleteMetadata() {
46+
const storageRef = firebase.storage().ref();
47+
const forestRef = storageRef.child('images/forest.jpg');
48+
49+
// [START storage_delete_metadata]
50+
51+
// Create file metadata with property to delete
52+
var deleteMetadata = {
53+
contentType: null
54+
};
55+
56+
// Delete the metadata property
57+
forestRef.updateMetadata(deleteMetadata)
58+
.then((metadata) => {
59+
// metadata.contentType should be null
60+
}).catch((error) => {
61+
// Uh-oh, an error occurred!
62+
});
63+
// [END storage_delete_metadata]
64+
}
65+
66+
function customMetadata() {
67+
// [START storage_custom_metadata]
68+
var metadata = {
69+
customMetadata: {
70+
'location': 'Yosemite, CA, USA',
71+
'activity': 'Hiking'
72+
}
73+
};
74+
// [END storage_custom_metadata]
75+
}

storage/index.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,44 @@
11
import firebase from "firebase/app";
22
import "firebase/storage";
33

4+
function initialize() {
5+
// [START storage_initialize]
6+
// Set the configuration for your app
7+
// TODO: Replace with your app's config object
8+
var firebaseConfig = {
9+
apiKey: '<your-api-key>',
10+
authDomain: '<your-auth-domain>',
11+
databaseURL: '<your-database-url>',
12+
storageBucket: '<your-storage-bucket-url>'
13+
};
14+
firebase.initializeApp(firebaseConfig);
15+
16+
// Get a reference to the storage service, which is used to create references in your storage bucket
17+
var storage = firebase.storage();
18+
// [END storage_initialize]
19+
}
20+
21+
function multipleBuckets() {
22+
// [START storage_multiple_buckets]
23+
// Get a non-default Storage bucket
24+
var storage = firebase.app().storage("gs://my-custom-bucket");
25+
// [END storage_multiple_buckets]
26+
}
27+
28+
function storageCustomApp() {
29+
const customApp = firebase.initializeApp({
30+
// ... custom stuff
31+
});
32+
33+
// [START storage_custom_app]
34+
// Get the default bucket from a custom firebase.app.App
35+
var storage = customApp.storage();
36+
37+
// Get a non-default bucket from a custom firebase.app.App
38+
var storage = customApp.storage("gs://my-custom-bucket");
39+
// [END storage_custom_app]
40+
}
41+
442
/**
543
* @param {File} file
644
*/

0 commit comments

Comments
 (0)