Resmi Firebase uzantılarından herhangi birini Firebase konsolunu, Firebase CLI'yı (komut satırı arayüzü) veya otomatik olarak oluşturulan bir SDK'yı kullanarak yükleyebilir (ve yönetebilirsiniz).
Her yükleme yöntemi için desteklenen işlemler arasındaki farklılıkları incelediğinizden emin olun.
Otomatik olarak oluşturulan bir SDK kullanılarak yükleme, uzantıları yüklemek ve yönetmek için yeni bir seçenektir. Bu seçenekte, belirli bir uzantı sürümü için Node SDK'sını otomatik olarak oluşturmak üzere CLI'yı kullanırsınız. Bu SDK'yı JavaScript veya TypeScript Cloud Functions'ınızda normal bir bağımlılık olarak içe aktarabilirsiniz.
Bu otomatik olarak oluşturulan SDK'da şunlar bulunur:
- Uzantının parametrelerini ve çoğu ilkel olmayan parametre türü için tür bildirimlerini temsil eden bir arayüz.
- Uzantının bir örneğini başlatan bir oluşturucu işlevi
- Uzantı tarafından yayınlanan tüm etkinlikler için Eventarc tetikleyicilerini içeren bir uzantı sınıfı.
Uzantı SDK'sı oluşturduktan sonra uzantının tüm yapılandırması kodda yapılır.
Bu yükleme seçeneğini kullanmak, özellikle uzantıların dışında tanımlanmış Cloud işlevleri içeren projelerde birden fazla uzantı örneğinin yönetimini büyük ölçüde basitleştirebilir.
Uzantıları yüklemek veya yönetmek için şu rollerden birine atanmış olmanız gerekir: Sahip veya Düzenleyici ya da Firebase Yöneticisi.
Uzantı yüklemek için projenizin Blaze (kullandıkça öde) planı kapsamında olması gerekir. Uzantı yükleme işlemi ücretsiz olsa da kullanımınız hizmetlerin ücretsiz katmanını aşarsa Firebase hizmetleri veya Cloud Secret Manager gibi Cloud hizmetlerinin kullanımı için sizden ücret alınabilir.
Başlamadan önce
Henüz yapmadıysanız Firebase'i projenize ekleyin.
Henüz yapmadıysanız projenizi Blaze (kullandıkça öde) planına yükseltin.
Firebase CLI'nın en son sürümünü yükleyin veya bu sürüme güncelleyin.
Firebase proje kimliğinizi veya daha önce yapılandırılmış proje takma adınızı not edin.
- Proje Kimliği: Bilgisayarınızın herhangi bir yerinden
firebase projects:list
komutunu çalıştırın. - Proje takma adı: Yerel uygulama dizininizden
firebase use
komutunu çalıştırın.
- Proje Kimliği: Bilgisayarınızın herhangi bir yerinden
1. adım: Bir uzantıyla ilgili ayrıntılı bilgileri görüntüleyin
Bu adım isteğe bağlıdır ancak kesinlikle önerilir.
Firebase Extension yüklemeden önce uzantıyla ilgili ayrıntılı bilgileri incelemenizi öneririz. Bu bilgiler arasında şunlar yer alır:
- Uzantının işleyiş şekli, önceden yapılması gereken yükleme görevleri ve uzantıyla ilgili ayrıntılar
- Genel tanımlayıcı bilgiler ve açıklama
- Uzantının görevleri için faturalandırma hesabı gerekip gerekmediği
- İşlem için gereken Google hizmetleri (API'ler) ve erişim rolleri
- Uzantı için oluşturulan kaynaklar (ör. işlevler)
- Kullanıcı tarafından yapılandırılabilen parametrelerin açıklamaları
Bir uzantının ayrıntılı bilgilerini görüntülemek için:
Ortamınızı ayarladığınızdan ve bir uzantı seçtiğinizden emin olun.
extension-info komutunu bilgisayarınızın herhangi bir yerinden çalıştırın:
firebase ext:info publisher-id/extension-id
publisher-id
veextension-id
bağımsız değişkenleri zorunludur ve uzantının önceden yükleme ayrıntıları sayfasında bulunabilir.
2. adım: Uzantı yükleyin
Yüklemeden önce uzantının temel özelliklerini (ör. etkinleştirilen API'ler, oluşturulan kaynaklar, verilen erişim vb.) ve faturalandırma şartlarını inceleyin.
Devam etmeden önce ortamınızı ayarladığınızdan ve bir uzantı seçtiğinizden emin olun.
Cloud Functions for Firebase'i başlatma
Yeni bir projeye başlıyorsanız veya projenizde henüz Cloud Functions for Firebase kullanılmıyorsa init functions
komutunu çalıştırın:
cd your-project
firebase init functions
İşlevlerinizin dili olarak TypeScript veya JavaScript'i seçin.
Projenizde Cloud Functions zaten başlatılmışsa firebase-functions
paketinin 5.1.0 veya daha yeni bir sürümünü kullandığınızdan emin olun:
cd your-project/functions
npm upgrade --save firebase-functions
ESLint kullanıyorsanız oluşturulan SDK'ları yapılandırmanızın dışında tutmak da isteyebilirsiniz (.eslintrc.js
):
ignorePatterns: [
"/generated/**/*", // Ignore generated files.
// ...
],
Uzantı SDK'sı oluşturma
Yerel Firebase dizininizden ext:sdk:install
komutunu çalıştırın.
firebase ext:sdk:install publisher-id/extension-id@version
Örneğin, firestore-send-email
uzantısının 0.1.34 sürümünü yüklemek için:
firebase ext:sdk:install firebase/firestore-send-email@0.1.34
publisher-id
ve extension-id
gerekli olup extensions.dev adresindeki uzantının önceden yükleme ayrıntıları sayfasında bulunabilir.
@version
kısmı isteğe bağlıdır. Bu kısmı atlarsanız araç en son sürümü yükler.
Belirtebileceğiniz iki seçenek vardır:
--force
: Aşağıdakilerin tümünü başka bir onay olmadan yapın:- Aynı uzantı ve sürüm için daha önce oluşturulmuş olsa bile SDK'yı otomatik olarak oluşturun.
- Otomatik olarak oluşturulan SDK paketini Cloud Functions Node projesine yükleyin.
--codebase
: SDK'nın ekleneceği kod tabanının adı. Belirtilmezse komut, SDK'yı varsayılan kod tabanına (functions
) ekler.
Bu komut, uzantı için otomatik olarak oluşturulan bir SDK'yı içeren bir Node paketi oluşturur ve bunu projenizin Cloud Functions kod tabanlarından birine ekler. Varsayılan kod tabanında
(functions
) SDK şu konuma kaydedilir:
functions/generated/extensions/publisher-id/extension-id/version
SDK oluşturulduktan sonra komut, SDK'yı Cloud Functions Node projenize de yüklemek isteyip istemediğinizi sorar. Bu isteme Evet yanıtını verin.
Uzantı örneklerini yapılandırma
Uzantıyı yapılandırmak için SDK'yı içe aktarın ve yüklemek istediğiniz her uzantı örneği için oluşturucu işlevini çağırın. Bu işlevi çağırırken, projeye özel bir örnek kimliği ve uzantının gerektirdiği yapılandırma parametrelerini iletin.
Cloud Functions kaynağınızda,
ext:sdk:install
komutu tarafından yazdırılan ifadeyi kullanarak oluşturucuyu içe aktarın.TypeScript
Örneğin,
firestore-send-email
uzantısı için bir SDK oluşturduysanızimport
ifadesi aşağıdaki gibi görünür:import { firestoreSendEmail } from "@firebase-extensions/firebase-firestore-send-email-sdk";
Uzantı için şifre gibi gizli değerler gerekiyorsa Cloud Functions SDK'sındaki
defineSecret
işlevini de kullanmanız gerekir:import { defineSecret } from "firebase-functions/params";
JavaScript
Örneğin,
firestore-send-email
uzantısı için bir SDK oluşturduysanızrequire
ifadesi aşağıdaki gibi görünür:const { firestoreSendEmail } = require("@firebase-extensions/firebase-firestore-send-email-sdk");
Uzantı için şifre gibi gizli değerler gerekiyorsa Cloud Functions SDK'sındaki
defineSecret
işlevini de kullanmanız gerekir:const { defineSecret } = require('firebase-functions/params');
Yapılandırmak istediğiniz her örnek için oluşturucu işlevini çağırın ve sonucu dışa aktarın.
Her örneğe yalnızca küçük harf, rakam ve kısa çizgi içeren benzersiz bir kimlik verin.
TypeScript
export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465", SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"), MAIL_COLLECTION: "mail", DEFAULT_FROM: "ExampleCo <username@example.com>", TTL_EXPIRE_VALUE: "1", TTL_EXPIRE_TYPE: "day", });
JavaScript
exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465", SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"), MAIL_COLLECTION: "mail", DEFAULT_FROM: "ExampleCo <username@example.com>", TTL_EXPIRE_VALUE: "1", TTL_EXPIRE_TYPE: "day", });
Gizli değerlerin
defineSecret
işlevi kullanılarak belirtilmesi gerektiğini unutmayın.Ardından, yapılandırdığınız uzantıları dağıtmak için şu komutu çalıştırın:
firebase deploy --only functions --project=projectId-or-alias
Her zamanki Cloud Functions dağıtım seçeneklerinin tümü geçerlidir. Örneğin, belirli bir kod tabanından tek bir uzantı örneği dağıtmak için:
firebase deploy --only functions:codebase:extension-instance-id --project=projectId-or-alias
3. adım: Yükleme sonrası kurulumu tamamlayın
Bazı uzantıları kullanmadan önce tamamlamanız gereken zorunlu veya isteğe bağlı adımlar vardır. Bu talimatları, Extensions konsolunun Firebase kontrol panelindeki uzantınızın yükleme sonrası ayrıntılar sayfasında bulabilirsiniz (Kontrol paneline giden bağlantı, yükleme işleminden sonra terminalde gösterilir).
Bu talimatları, uzantının kaynak dizininde bulunan POSTINSTALL.md
dosyasında da bulabilirsiniz.
Firebase kaynakları oluşturma
Uzantıyı, henüz mevcut olmayan Firebase kaynaklarını (Cloud Firestorekoleksiyonlar, Realtime Database yollar, Cloud Storage paketler) kullanacak şekilde yapılandırdıysanız uzantıyı kullanmadan önce bu kaynakları oluşturun.
Eventarc etkinlik işleyicileri oluşturma
Bazı uzantılar, yürütme sırasında önemli olaylar gerçekleştiğinde Eventarc'a yayın yapar. Bir uzantı etkinlik yayınlıyorsa bu etkinliklere kendi özel mantığınızla tepki veren işlevler yazabilirsiniz. Bu özellik, örneğin uzun süren görevler tamamlandığında kullanıcıları bilgilendirmek veya bir uzantı işlevinin çıkışını sonradan işlemek için yararlı olabilir.
Uzantı tarafından yayınlanan etkinliklerden herhangi biri için işleyiciler tanımlamak istiyorsanız her örneğin tetikleme yöntemlerini kullanarak bunu yapabilirsiniz:
TypeScript
export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });
export const emailErrorHandler = firestoreSendEmail_1.onError((event) => {
// Handle mail errors.
});
JavaScript
exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });
exports.emailErrorHandler = exports.firestoreSendEmail_1.onError((event) => {
// Handle mail errors.
});
Etkinlik işleyiciyi uzantı örneğiyle birlikte dışa aktarmanız gerekir.
Bir etkinlik işleyici tanımladıktan ve birinde her değişiklik yaptığınızda hem uzantıyı hem de işleyiciyi yeniden dağıtın.
Birden fazla uzantı örneği yükleme
Aynı uzantıyı aynı projede birden fazla kez yükleyebilirsiniz. Yüklenen her örneğin kendi özelleştirilmiş yapılandırması ve kendi uzantı kaynakları olabilir. Yüklü her örneği, projenizde benzersiz olan örnek kimliği ile tanımlar ve buna göre referans verirsiniz.
Yüklemek ve yapılandırmak istediğiniz her örnek için otomatik olarak oluşturulan SDK'nın oluşturucu işlevini bir kez çağırın.
Sonraki adımlar
Yüklenen uzantınızın Firebase konsolundaki ayrıntılarını ve yapılandırmasını görüntüleyin.
Yüklü uzantınızın etkinliğini izleyin. Durum, kullanım ve günlüklerle ilgili kontroller de buna dahildir.
Firebase konsolunu kullanarak yüklü uzantınızı yönetin. Resmi Firebase uzantılarını yeniden yapılandırabilir veya kaldırabilir, ayrıca uzantınızı en son sürüme güncelleyebilirsiniz.
Tüm projeler için en iyi uygulama olarak, projeniz için bütçe uyarıları ayarladığınızdan ve Firebase konsolunda Kullanım ve faturalandırma kontrol panelinizi izlediğinizden emin olun.