Desteklenen ortamlar
Firebase JavaScript SDK'sı aşağıdaki ortamlarda resmi olarak desteklenir.
Tarayıcılar
| Firebase ürünü | Edge | Firefox | Chrome | iOS Safari | Safari |
|---|---|---|---|---|---|
| Firebase AI Logic 1 | |||||
| Analytics | |||||
| App Check | |||||
| Authentication | |||||
| Cloud Firestore | (kalıcılık hariç) |
(iOS < 10 ise kalıcılık hariç) |
|||
| Cloud Functions | |||||
| Cloud Messaging | (Mobil hariç Edge 17 ve sonraki sürümler) |
||||
| Cloud Storage | |||||
| Firebase yükleme | |||||
| Performance Monitoring | |||||
| Realtime Database | |||||
| Remote Config | |||||
| SQL Connect |
1 Firebase AI Logic, daha önce "Vertex AI in Firebase" olarak adlandırılıyordu.
Diğer ortamlar
| Firebase ürünü | React Native | Node.js (18+) | Chrome Uzantıları |
Cordova |
|---|---|---|---|---|
| Firebase AI Logic 1 | ||||
| App Check | (Yerel cihaz onayı için özel sağlayıcı kullanma) |
(özel sağlayıcı kullanarak) |
||
| Analytics | ||||
| Authentication | (Not bölümüne bakın) |
(Not bölümüne bakın) |
(Not bölümüne bakın) |
(Not bölümüne bakın) |
| Cloud Firestore | (kalıcılık hariç) |
(kalıcılık hariç) |
||
| Cloud Functions | ||||
| Cloud Messaging | ||||
| Cloud Storage | (yüklemeler hariç) |
|||
| Firebase yükleme | ||||
| Performance Monitoring | ||||
| Realtime Database | ||||
| Remote Config | ||||
| SQL Connect |
1 Firebase AI Logic, daha önce "Vertex AI in Firebase" olarak adlandırılıyordu.
Çoklu dolgular
Firebase JavaScript SDK'sı, web platformunun en son standartlarına göre oluşturulmuştur. Bazı eski tarayıcılar ve JavaScript ortamları, Firebase için gereken tüm özellikleri desteklemez. Bu tarayıcıları/ortamları desteklemeniz gerekiyorsa polyfill'leri buna göre yüklemeniz gerekir.
Aşağıdaki bölümlerde, ihtiyaç duyabileceğiniz polyfill'lerin çoğu açıklanmaktadır.
Gerekli polyfill'ler
| Ortam | Polyfill'ler |
|---|---|
| Safari 7, 8 ve 9 | ES Stable |
| Düğüm < 10 | ES Stable |
İsteğe bağlı polyfill'ler
| Ortam | Polyfill'ler | Firebase ürünleri |
|---|---|---|
|
fetch |
|
|
fetch |
|
|
base-64 |
|
Önerilen polyfill'ler
| Polyfill'ler | Lisans |
|---|---|
| ES Kararlı | MIT |
| fetch - `cross-fetch` - eski tarayıcılar için en iyisi | MIT |
| fetch - `undici` - Node.js için en iyisi | MIT |
| base-64 | MIT |
React Native ve Expo için Gerekli Polyfill Kurulumu
React Native ve Expo için Base64 ile kodlanmış bir dize yüklüyorsanız aşağıdakileri yapmanız gerekir:
npm'den base-64'ü yükleyin:
npm install base-64
decode öğesini base-64 kaynağından içe aktarın ve Cloud Storage tarafından erişilebilmesi için atob olarak global kapsama ekleyin.
import { decode } from 'base-64';
if(typeof atob === 'undefined') {
global.atob = decode;
}
Uygulamanıza polyfill ekleme
1. seçenek: (Önerilir) Babel ile entegre edilmiş paketleyici kullanın.
Paketleyici kullanıyorsanız polyfill'leri almak için Babel ve @babel/preset-env ile entegre edin.
Babel'i paketleyicinizle nasıl entegre edeceğinizi öğrenmek için Babel'in etkileşimli kurulum kılavuzunu kullanın.
Babel ile, dahil edilecek polyfill'ler konusunda endişelenmenize gerek kalmaz. Bunun yerine, desteklemeniz gereken minimum tarayıcı ortamlarını belirtirsiniz. Babel, gerekli polyfill'leri sizin için ekler. Babel, Firebase veya kendi kodunuz yeni ES özelliklerini kullanmaya başlasa bile tarayıcı desteğiyle ilgili gereksinimlerinizin her zaman karşılanmasını sağlar.
@babel/preset-env, ortam hedeflerini belirtmek (targets seçeneği) ve polyfill eklemek (useBuiltIns seçeneği) için kullanılabilen yapılandırma seçenekleri hakkında ayrıntılı bilgi içerir.
2. seçenek: (Önerilmez) Polyfill'leri manuel olarak ekleme
En sevdiğiniz polyfill kitaplıklarını (ör. core-js) kullanarak polyfill'leri manuel olarak ekleyebilirsiniz.
import 'core-js/stable'
import 'cross-fetch/polyfill';
core-js, doğrudan HTML sayfasına ekleyebileceğiniz hepsi bir arada polyfill dosyası da sağlar.
Babel kullanmıyorsanız polyfill'leri yönetmek için bu seçeneği kullanabilirsiniz. Ancak üretim uygulamaları için bu hepsi bir arada seçeneğini önermiyoruz. Bu seçenek, gereksiz polyfill'ler içerebileceğinden sayfa ağırlığını ve dolayısıyla sayfa yükleme süresini artırır.