Skip to main content

Menyimpan Berkas (file) ke Firebase Storage menggunakan Firebase Functions

Dear Pembaca Setia,

Kali ini Penulis hendak berbagi pengalaman saat Penulis mengerjakan suatu projek yang mengharuskan untuk menyimpan berkas (image, file, etc) ke Firebase Storage menggunakan Firebase Functions.

Informasi tentang Firebase Storage dapat diakses https://firebase.google.com/docs/storage.

Dan informasi tentang Firebase Cloud Functions dapat diakses di https://firebase.google.com/docs/functions

Firebase Storage menyediakan berbagai jalur akses ke layanannya: Android SDK, Web SDK, Admin SDK, dll. Karena pada projek ini Penulis bekerja dengan layanan Firebase Cloud Functions, maka jalur akses ke Firebase Storage mennggunakan Admin SDK.

Langsung saja, berikut adalah contoh code yang digunakan oleh Penulis:

const functions = require('firebase-functions');

const admin = require('firebase-admin');

exports.FileUpload = functions.https.onRequest(async (req, res) => {
    const imageExtension = req.body.ImageExtension;
    const imageDataUrl = req.body.ImageDataUrl;

    const filename = `${create_UUID()}.${imageExtension}`;
    const filetoken = create_UUID();

    const myBucket =
        await admin.storage().bucket()
            .file(filename)
            .save(
                Buffer.from(imageDataUrl, 'base64'),
                {
                    metadata:
                    {
                        contentType: `image/${imageExtension}`,
                        metadata: {
                            firebaseStorageDownloadTokens: filetoken,
                        }
                    }
                }
            );
});

function create_UUID() {
    var dt = new Date().getTime();
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
        var r = (dt + Math.random() * 16) % 16 | 0;
        dt = Math.floor(dt / 16);
        return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
    });
    return uuid;
}

Demikian tutorial singkat kali ini, semoga bermanfaat.

Salam Koding...

Comments

Popular posts from this blog

Pengaturan TP-LINK TL-MR3020 sebagai WiFi Client

Dear Pembaca setia, Kali ini penulis ingin berbagi cerita, bagaimana sebuah devices (PC atau yang lain) yang tidak memiliki modul Wireless, dan hanya memiliki port LAN (RJ45), dapat terkoneksi ke jaringan dengan bantuan Wireless Router TP-Link TL-MR3020. Caranya adalah dengan

Install Ghost Blog di Raspberry Pi

Dear Pembaca Setia, Kali ini Penulis hendak berbagi pengalaman terkait instalasi Ghost Blog di Raspberry Pi. Penulis menggunakan Raspberry Pi 4b saat instalasi, namun Raspberry Pi 3b seharusnya sudah cukup. Tutorial kali ini menggunakan Docker untuk instalasi Ghost,