Lingkungan yang didukung
Firebase JavaScript SDK secara resmi didukung di lingkungan berikut.
Browser
Produk Firebase | Edge | Firefox | Chrome | iOS Safari | Safari |
---|---|---|---|---|---|
App Check | |||||
Analytics | |||||
Authentication | |||||
Cloud Firestore | (kecuali persistensi) |
(kecuali persistensi jika iOS < 10) |
|||
Cloud Functions | |||||
Penginstalan Firebase | |||||
Cloud Messaging | (Edge 17+, kecuali perangkat seluler) |
||||
Cloud Storage | |||||
Performance Monitoring | |||||
Realtime Database | |||||
Remote Config | |||||
Vertex AI in Firebase |
Lingkungan lain
Produk Firebase | React Native | Node.js (18+) | Ekstensi Chrome |
Cordova |
---|---|---|---|---|
App Check | (menggunakan penyedia kustom untuk melakukan pengesahan perangkat native) |
(menggunakan penyedia kustom) |
||
Analytics | ||||
Authentication | (lihat Catatan) |
(lihat Catatan) |
(lihat Catatan) |
(lihat Catatan) |
Cloud Firestore | (kecuali persistensi) |
(kecuali persistensi) |
||
Cloud Functions | ||||
Penginstalan Firebase | ||||
Cloud Messaging | ||||
Cloud Storage | (kecuali upload) |
|||
Performance Monitoring | ||||
Realtime Database | ||||
Remote Config | ||||
Vertex AI in Firebase |
Polyfill
Firebase JavaScript SDK dibuat berdasarkan standar platform web terbaru. Beberapa browser yang lebih lama dan lingkungan JavaScript tidak mendukung semua fitur yang diperlukan oleh Firebase. Jika Anda harus mendukung browser/lingkungan ini, Anda perlu memuat polyfill.
Bagian di bawah mengidentifikasi sebagian besar polyfill yang mungkin Anda butuhkan.
Polyfill yang dibutuhkan
Lingkungan | Polyfill |
---|---|
Safari 7 & 8 & 9 | ES Stable |
Node < 10 | ES Stable |
Polyfill opsional
Lingkungan | Polyfill | Produk Firebase |
---|---|---|
|
fetch |
|
|
fetch |
|
|
base-64 |
|
Polyfill yang disarankan
Polyfill | Lisensi |
---|---|
ES Stable | MIT |
fetch - `cross-fetch` - paling cocok untuk browser lama | MIT |
fetch - `undici` - paling cocok untuk Node.js | MIT |
base-64 | MIT |
Penyiapan Polyfill yang diperlukan untuk React Native dan Expo
Untuk React Native dan Expo, jika Anda mengupload string berenkode base-64, lakukan langkah berikut:
Instal base-64 dari npm:
npm install base-64
Impor decode
dari base-64
dan lampirkan ke cakupan global sebagai atob
agar Cloud Storage dapat mengaksesnya.
import { decode } from 'base-64';
if(typeof atob === 'undefined') {
global.atob = decode;
}
Menambahkan polyfill di aplikasi Anda
Opsi 1: (Direkomendasikan) Menggunakan bundler yang terintegrasi dengan Babel
Jika Anda menggunakan pemaket, integrasikan dengan Babel dan @babel/preset-env untuk mendapatkan polyfill.
Gunakan panduan penyiapan Babel yang interaktif untuk mempelajari cara mengintegrasikan Babel dengan bundler Anda.
Dengan Babel, Anda tidak perlu khawatir tentang polyfill mana yang harus disertakan. Sebaliknya, Anda dapat menentukan lingkungan browser minimal yang perlu didukung. Kemudian, Babel akan menambahkan polyfill yang diperlukan untuk Anda. Babel akan memastikan bahwa persyaratan Anda untuk dukungan browser selalu terpenuhi, meskipun Firebase atau kode Anda sendiri mulai menggunakan fitur ES baru.
@babel/preset-env memiliki informasi mendetail mengenai opsi konfigurasi yang tersedia untuk menentukan target lingkungan (opsi targets
) dan menambahkan polyfill (opsi useBuiltIns
).
Opsi 2: (Tidak Direkomendasikan) Menambahkan polyfill secara manual
Anda dapat menambahkan polyfill secara manual menggunakan library polyfill favorit (misalnya, core-js
).
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js
juga menyediakan
file polyfill all-in-one
yang dapat Anda sertakan secara langsung di halaman HTML.
Opsi ini bisa menjadi cara yang praktis untuk mengelola polyfill jika Anda tidak menggunakan Babel. Namun, sebaiknya jangan gunakan opsi all-in-one ini untuk aplikasi produksi karena kemungkinan akan menyertakan polyfill yang tidak perlu. Hal ini menyebabkan peningkatan berat halaman dan waktu muat halaman.