Firebase uzantıları, Firebase Cloud Messaging, Cloud Firestore veya Pub/Sub gibi diğer Firebase ve Google ürünlerinden gelen HTTP isteklerine veya tetikleyici etkinliklere yanıt olarak belirli bir görevi ya da görev grubunu gerçekleştirir.
Firebase Uzantı Merkezi'nde kişisel kullanım için veya dünyayla paylaşmak üzere kendi uzantınızı oluşturabilirsiniz. Örneğin, uzantınız uygulamanızın düzenli olarak ihtiyaç duyduğu belirli bir görevi gerçekleştirebilir veya şirketinizin API'lerinden birine erişmeyi kolaylaştırabilir. Uzantı oluşturduktan sonra başkalarıyla paylaşabilirsiniz. Bu kullanıcılar, uzantıyı kendi Firebase projelerinde kullanmak üzere yükleyip yapılandırabilir.
Uzantının yapısı
Uzantıların üç ana bileşeni olduğunu düşünebilirsiniz:
- JavaScript veya TypeScript'te Cloud Functions kodu
- Uzantınızı açıklayan meta veriler
- Kullanıcılarınızın uzantınızı yapılandırmalarına ve kullanmalarına yardımcı olacak dokümanlar
Bir uzantı geliştirmek için bu bileşenleri aşağıdaki yapıda birleştirirsiniz:
example-extension
├── functions
│ ├── integration-tests
│ │ ├── extensions
│ │ │ └── example-extension.env
│ │ ├── firebase.json
│ │ └── integration-test.spec.js
│ ├── index.js
│ └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
functions
dizini, JavaScript veya TypeScript'te Cloud Functions kodunuzu içerir. Bu kod, Firebase ve Google hizmetleri tarafından tetiklenen etkinliklere yanıt olarak uzantının görevlerini gerçekleştirir.extension.yaml
dosyası, tetikleyicileri ve IAM erişim rolleri gibi uzantı meta verilerinin yanı sıra kullanıcı tarafından yapılandırılabilir olmasını istediğiniz tüm parametreleri içerir.PREINSTALL
,POSTINSTALL
veCHANGELOG
dosyaları, uzantınızın sahip olması gereken minimum dokümandır. Bu dosyalar, kullanıcılarınızın uzantınızın ne yaptığını, nasıl kullanıldığını ve yaptığınız güncellemeleri öğrenmesine yardımcı olur. Ayrıca, kullanıcıların uzantınızı tanımasına yardımcı olacak bir simge de eklemeniz gerekir. Kullanıcılar uzantınızı keşfettiği, yüklediği ve yönettiği zaman Firebase konsolu, Firebase CLI ve Uzantıları Merkezi bu dosyaların içeriğini gösterir.
Uzantınızı oluşturduktan sonra Firebase CLI'yi kullanarak bir projeye yükleyebilir veya Uzantıları Merkezi'nde yayınlayabilirsiniz. Uzantıları Merkezi'nde herkes bu uzantıyı keşfedip projelerine yükleyebilir.
Uzantım hangi ürünlerle etkileşim kurabilir?
Firebase uzantıları, işlerini Cloud Functions'i kullanarak yaptığından, olası entegrasyonlar sorununu iki şekilde ele alabilirsiniz: Uzantımın işlevlerini hangi ürünler tetikleyebilir? ve Tetiklendikten sonra uzantımın işlevleri hangi ürünlerle etkileşime geçebilir?
Desteklenen işlev tetikleyicileri
Manuel tetikleyiciler
Öncelikle, bir işlevi manuel olarak tetikleyebilirsiniz. Firebase uzantıları ve Cloud Functions, işlevleri manuel olarak tetiklemenin iki yolunu destekler:
- HTTP tetikleyicileri: Bir işlevi HTTP uç noktasına dağıtma
- Çağırılabilir işlevler: Firebase istemci SDK'larını kullanarak Cloud Functions'lerinizi doğrudan iOS, Android veya web istemci kodunuzdan çağırın.
Uzantılarınız, HTTP uç noktalarını sunarak webhook'ları destekleyen tüm web hizmetleriyle entegre edilebilir. Çağırılabilir işlevler sayesinde, uzantınızı yükleyen kullanıcılar, uzantınızın uyguladığı API'ye erişmek için Firebase SDK'larını istemci kitaplığı olarak kullanabilir.
Firebase hizmet tetikleyicileri
Çoğu Firebase ürünü, bir uzantının Cloud Functions'ini tetikleyebilecek etkinlikler yayınlar.
- Analytics: Analytics bir etkinlik kaydettiğinde işlevleri tetikler
- App Distribution: App Distribution bir uyarı tetiklediğinde işlevleri tetikleme
- Kimlik doğrulama: Kullanıcılar hesap oluşturup sildiğinde işlevleri tetikleme
- Cloud Firestore: Sayfalar oluşturulduğunda, güncellendiğinde veya silindiğinde işlevleri tetikleme
- Cloud Storage: Nesneler paketlere yüklendiğinde, arşivlendiğinde veya paketlerden silindiğinde işlevleri tetikleyin.
- Crashlytics: Crashlytics bir uyarı tetiklediğinde işlevleri tetikleme
- Performans İzleme: Performans İzleme bir uyarı tetiklediğinde işlevleri tetikleme
- Realtime Database: Veriler oluşturulduğunda, güncellendiğinde veya silindiğinde işlevleri tetikleyin.
- Remote Config: Bir parametre güncellendiğinde işlevleri tetikleme
- Test Lab: Test Lab bir uyarı tetiklerken işlevleri tetikleme
Google Cloud hizmet tetikleyicileri
Uzantıda, Firebase dışındaki çeşitli Google Cloud hizmetlerini tetikleyen işlevler de bulunabilir:
- Cloud Pub/Sub: Uzantılar, yapılandırılabilir bir Pub/Sub konusuna etkinlik gönderildiğinde tetiklenen işlevler içerebilir.
- Cloud Scheduler: Uzantılar, belirli bir zaman planında çalışan işlevler içerebilir.
- Cloud Tasks: Uzantılar, Cloud Tasks kullanılarak sıraya alınabilecek işlevler içerebilir. Firebase uzantıları, uzantı yazarı olarak bir uzantının "yaşam döngüsü" etkinliklerine (ör. bir projeye ilk kez yüklenmek, yeni bir sürüme yükseltilmek ve yeniden yapılandırılmak) yanıt veren işlevler yazmanıza olanak tanımak için bu özelliği kullanır.
- Eventarc: Bir uzantı, yapılandırılabilir bir Eventarc kanalına etkinlik yayınlandığında tetiklenen işlevler içerebilir. Buna karşılık, kullanıcıların uzantıların etkinliklerinden tetiklenen kendi işlevlerini tanımlayabilmesi için uzantılar kendi etkinliklerini bir Eventarc kanalına yayınlayabilir.
İşlevlerden desteklenir
Bir uzantının Cloud Functions işlevi tetiklendikten sonra, olası entegrasyonların kapsamı genellikle sınırsızdır. Cloud Functions ile yapabileceğiniz bazı önemli işlemleri aşağıda bulabilirsiniz:
- Desteklenen bir IAM rolü kullanan tüm Firebase veya Google Cloud hizmetini okuma, yazma ve başka bir şekilde etkileşim kurma.
- Web API'si sağlayan tüm üçüncü taraf hizmetleriyle çalışır.
- Web API'si sağlıyorsanız özel hizmetlerinizle çalışın.
- TensorFlow.js, Express.js vb. dahil olmak üzere çoğu JavaScript kitaplığını çalıştırın.
Uzantı oluşturma
Başlarken eğitimi, eksiksiz bir uzantı oluşturma, test etme ve yayınlama sürecinde size yol gösterir. Bu eğitim, uzantı oluşturmayı öğrenmenin önerilen yoludur.
Başlangıç kılavuzunu bir kez inceledikten sonra, kendi uzantınızı oluşturmayla ilgili görevlerin her birini açıklayan ayrı konu kılavuzlarına göz atabilirsiniz:
- Uzantı için işlev yazma
- Uzantılarda parametreleri kullanma
- Uzantıya uygun erişimi ayarlama
- Uzantı yaşam döngüsü etkinliklerine yanıt verme
- Uzantılara kullanıcı kancaları ekleme
- Uzantınız için kullanıcı dokümanı oluşturma
- Uzantıların Merkezi'nde uzantı yayınlama
- extension.yaml referansı