Uzantı yayıncısına genel bakış

Firebase uzantıları, HTTP isteklerine veya diğer Firebase ve Google ürünlerinden (ör. Firebase Cloud Messaging, Cloud Firestore veya Pub/Sub) gelen tetikleyici etkinliklere yanıt olarak belirli bir görevi ya da görev grubunu gerçekleştirir.

Kişisel kullanım için veya Firebase Extensions Hub'da tüm 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şimi kolaylaştırabilir. Uzantınızı 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ı yapısı

Bir uzantının üç temel 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ırmasına ve kullanmasına yardımcı olacak dokümanlar

Uzantı geliştirmek için bu bileşenleri aşağıdaki yapıda bir araya getirirsiniz:

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, Cloud Functions kodunuzu JavaScript veya TypeScript olarak 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ı, uzantınızla ilgili meta verileri (ör. tetikleyicileri ve IAM erişim rolleri) ve kullanıcı tarafından yapılandırılmasını istediğiniz tüm parametreleri içerir.
  • PREINSTALL, POSTINSTALL ve CHANGELOG dosyaları, uzantınızın sahip olması gereken minimum dokümanlardır. Bu dosyalar, kullanıcılarınızın uzantınızın ne işe yaradığı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 sağlamalısınız. Firebase konsolu, Firebase CLI ve Uzantı Merkezi, kullanıcılar uzantınızı keşfederken, yüklerken ve yönetirken bu dosyaların içeriklerini gösterir.

Uzantınızı oluşturduktan sonra, Firebase CLI'yı kullanarak uzantıyı bir projeye yükleyebilir veya uzantıyı herkesin keşfedip projelerine yükleyebileceği Uzantı Merkezi'nde yayınlayabilirsiniz.

Uzantım hangi ürünlerle etkileşim kurabilir?

Firebase uzantıları, Cloud Functions'ı kullanarak çalıştığı için olası entegrasyonlar sorusunu iki şekilde düşünebilirsiniz: Hangi ürünler uzantımın işlevlerini 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 işlevlerinizi doğrudan iOS, Android veya web istemci kodunuzdan çağırın.

Uzantınızdan HTTP uç noktaları kullanıma sunarak uzantınız, webhook'ları destekleyen herhangi bir web hizmetiyle entegre olabilir. Ç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 hizmeti tetikleyicileri

Çoğu Firebase ürünü, uzantıların Cloud Functions'ını tetikleyebilecek etkinlikler yayınlar.

  • Analytics: Analytics bir etkinlik kaydettiğinde işlevleri tetikleme
  • App Distribution: App Distribution bir uyarıyı 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, paketlerden arşivlendiğinde veya silindiğinde işlevleri tetikleme
  • Crashlytics: Crashlytics bir uyarı tetiklediğinde işlevleri tetikleme
  • Performance Monitoring: Performance Monitoring bir uyarı tetiklediğinde işlevleri tetikleme
  • Realtime Database: Veriler oluşturulduğunda, güncellendiğinde veya silindiğinde işlevleri tetikleme
  • Remote Config: Bir parametre güncellendiğinde işlevleri tetikleme
  • Test Lab: Test Lab bir uyarı tetiklediğinde işlevleri tetikleme

Google Cloud hizmeti tetikleyicileri

Bir uzantı, Firebase harici çeşitli Google Cloud hizmetlerini tetikleyen işlevler de içerebilir:

  • Cloud Pub/Sub: Bir uzantı, yapılandırılabilir bir Pub/Sub konusuna etkinlikler yayınlandığında tetiklenen işlevler içerebilir.
  • Cloud Scheduler: Bir uzantı, belirli bir zamanlamada çalışan işlevler içerebilir.
  • Cloud Tasks: Bir uzantı, Cloud Tasks kullanılarak sıraya alınabilen işlevler içerebilir. Firebase Uzantıları, bu özelliği kullanarak uzantı yazarı olarak uzantının "yaşam döngüsü" etkinliklerine (bir projeye ilk kez yüklenme, yeni bir sürüme yükseltilme ve yeniden yapılandırılma) yanıt veren işlevler yazmanıza olanak tanır.
  • Eventarc: Bir uzantı, etkinlikler yapılandırılabilir bir Eventarc kanalında yayınlandığında tetiklenen işlevler içerebilir. Bununla birlikte, bir uzantı, kullanıcıların uzantı etkinliklerinden tetiklenen kendi işlevlerini tanımlamasına olanak tanımak için kendi etkinliklerini bir Eventarc kanalında yayınlayabilir.

Desteklenen "From" işlevleri

Bir uzantının Cloud Functions işlevi tetiklendikten sonra, olası entegrasyonların kapsamı genellikle sınırsızdır. Cloud Functions ile yapabileceklerinizden bazıları aşağıda verilmiştir:

  • Desteklenen bir IAM rolü kullanan tüm Firebase veya Google Cloud hizmetleriyle okuma, yazma ve başka şekillerde 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 gibi çoğu JavaScript kitaplığını çalıştırın.

Uzantı oluşturma

Başlarken eğitiminde, eksiksiz bir uzantı oluşturma, test etme ve yayınlama süreci adım adım açıklanır. Bu eğitim, uzantı oluşturmayı öğrenmek için önerilen yöntemdir.

Başlayın

Başlangıç kılavuzunu bir kez inceledikten sonra, kendi uzantınızı oluşturmayla ilgili her bir görevi açıklayan ayrı konu kılavuzlarına başvurabilirsiniz: