Baru-baru ini, di Cloud Next 2018, kami melihat update yang sangat dinantikan untuk Cloud Functions, dan khususnya, ketersediaan Cloud Functions for Firebase secara umum. Sebagai bagian dari rilis tersebut, ada beberapa konfigurasi tambahan yang bisa Anda gunakan dalam functions Anda saat menerapkan dengan Firebase CLI. Mari kita lihat!

Runtime Node.js 8 sekarang sudah tersedia

Anda sekarang bisa menargetkan Node.js 8 sebagai opsi runtime (dalam versi beta, menargetkan versi 8.11.1). Apa untungnya bagi Anda? Yang paling menonjol, Node.js 8 menawarkan peningkatan kinerja dengan runtime JavaScript V8, dan kemampuan yang sangat dinantikan yaitu menggunakan sintaks async/await ECMAScript 2017 dengan JavaScript bawaan, tanpa harus melakukan transpile. Anda bisa membaca selengkapnya tentang async functions di sini.
Anda bisa mulai menerapkan functions ke runtime Node.js 8 dengan mengupdate Firebase CLI ke setidaknya versi 4.0.0. Untuk mendapatkan yang terbaru:
$ npm install -g firebase-tools@latest
$ firebase --version
4.0.0
Anda juga harus menggunakan setidaknya versi 2.0.1 dari modul firebase-functions dalam project Anda:
$ npm install firebase-functions@latest
Setelah itu, Anda harus membuat perubahan kecil pada konfigurasi project dalam package.json. Cukup tambahkan kunci dan nilai berikut pada tingkat atas konfigurasi JSON:
"engines": { "node": "8" }
Sekarang, ketika Anda menjalankan firebase deploy, CLI akan memberi beberapa masukan tentang runtime penerapan dalam keluarannya:
i  functions: updating Node.js 8 function onMessageCreate(us-central1)...
i  functions: updating Node.js 8 function onMessageDelete(us-central1)...
Bagi Anda yang menggunakan TypeScript untuk menulis functions (dan saya sangat menyarankannya!), Anda juga bisa mengupdate konfigurasi TypeScript di tsconfig.json untuk menargetkan ECMAScript 2017 sebagai ganti ES6. Konfigurasi baru Anda akan memiliki blok compilerOptions yang terlihat seperti berikut ini. Perhatikan bahwa nilai target dan lib sekarang berubah menjadi "es2017" sebagai ganti "es6".
  "compilerOptions": {
    "target": "es2017",
    "lib": ["es2017"],
    "module": "commonjs",
    ...
  }
Dengan ini, Anda akan melihat bahwa TypeScript yang terenkripsi tidak lagi mengonversi async/await untuk generator JavaScript, yang berarti ia akan menjadi sedikit lebih kencang dan cepat.
Google Cloud Functions sekarang juga memungkinkan developer mem-build dengan Python, tetapi, saat ini Firebase CLI tidak mendukung runtime tersebut.

Opsi konfigurasi runtime baru

Dengan menggunakan Firebase CLI, Anda bisa menetapkan region per-function untuk menghadirkan infrastruktur tanpa server lebih dekat ke pelanggan atau infrastruktur cloud lainnya. Anda juga bisa menetapkan waktu tunggu dan alokasi memori berbasis per-function, menyesuaikan kinerja dengan kasus penggunaan Anda.
Anda bisa melakukannya dengan modul firebase-functions yang sudah Anda gunakan untuk mem-build functions, dan Anda dapat menerapkan konfigurasi ini untuk semua tipe pemicu. Perhatikan metode region dan runWith baru dalam contoh kode ini:
const functions = require('firebase-functions');

exports.myHttpFunction = functions
  // Choose a region other than the default us-central1
  .region('europe-west1')
  // Increased memory, decreased timeout (compared to defaults)
  .runWith({ memory: '1GB', timeoutSeconds: 120 })
  .https
  .onRequest((req, res) = > {
     // time and memory intensive tasks
     res.send('Hello world');
  });
Diperlukan modul firebase-functions versi 2.0.1 atau yang lebih baru.

Memulai Cloud Functions for Firebase

Bila Anda baru saja memulai Firebase SDK untuk Cloud Functions, cobalah ikuti codelab langkah demi langkah kami dan kunjungi dokumentasi. Kami juga memiliki tutorial video untuk membantu Anda mempersiapkan penggunaan TypeScript:
Kami berharap fungsionalitas baru ini bermanfaat bagi Anda, dan kami berharap bisa terus memberi Anda lebih banyak fitur untuk membantu aplikasi yang benar-benar tanpa server yang Anda build!