Resmi Firebase uzantılarının herhangi birini Firebase konsolunu, Firebase CLI'yi (komut satırı arayüzü) veya otomatik olarak oluşturulmuş bir SDK'yı kullanarak yükleyebilir (ve yönetebilirsiniz).
Her kurulum yöntemi için desteklenen işlemlerdeki farklılıkları inceleyin.
Otomatik olarak oluşturulan bir SDK'yı kullanarak 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 otomatik olarak bir Node SDK'sı oluşturmak üzere CLI'yi 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 şunları içerir:
- Uzantı parametrelerini temsil eden bir arayüz ve ilkel olmayan çoğu parametre türü için tür bildirimleri.
- Uzantının bir örneğini başlatan bir kurucu işlevi
- Uzantı tarafından yayınlanan tüm etkinlikler için Eventarc tetikleyicileri içeren bir uzantı sınıfı.
Bir uzantı SDK'sı oluşturduktan sonra uzantının tüm yapılandırması kodda gerçekleşir.
Bu yükleme seçeneğini kullanmak, özellikle de uzantıların dışında tanımlanan Cloud işlevleri içeren projelerde birden fazla uzantı örneğinin yönetimini büyük ölçüde basitleştirebilir.
Uzantı 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ı yüklemek için projenizin Blaze (kullandıkça öde) planında olması gerekir. Uzantıları yüklemek ücretsiz olsa da Firebase hizmetlerini veya Cloud Secret Manager gibi Cloud hizmetlerini ücretsiz katmanlarının ötesinde kullanırsanız 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 geçirin.
Firebase proje kimliğinizi veya daha önce yapılandırılmış proje takma adınızı not edin.
- Proje Kimliği:
firebase projects:list
'i bilgisayarınızın herhangi bir yerinden çalıştırın. - Proje takma adı: Yerel uygulama dizininizden
firebase use
dosyasını çalıştırın.
- Proje Kimliği:
1. adım: Bir uzantı hakkında ayrıntılı bilgileri görüntüleme
Bu adım isteğe bağlıdır ancak kesinlikle önerilir.
Firebase Extension yüklemeden önce aşağıdakiler de dahil olmak üzere uzantı hakkında ayrıntılı bilgileri incelemenizi öneririz:
- Uzantının işleyiş şekli, yükleme öncesi görevler 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 (işlevler gibi)
- Kullanıcı tarafından yapılandırılabilir parametrelerin açıklamaları
Bir uzantının ayrıntılı bilgilerini görüntülemek için:
Ortamınızı oluşturduğunuzdan ve bir uzantı seçtiğinizden emin olun.
Bilgisayarınızdaki herhangi bir yerden extension-info komutunu ç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 yükleme ayrıntıları sayfasında bulunabilir.
2. adım: Bir 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 Cloud Functions for Firebase kullanılmıyorsa init functions
komutunu çalıştırın:
cd your-project
firebase init functions
İşlev 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ızdan da hariç tutmak isteyebilirsiniz (.eslintrc.js
):
ignorePatterns: [
"/generated/**/*", // Ignore generated files.
// ...
],
Uzatma 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
gereklidir ve extensions.dev adresindeki uzantının ön 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.
Belirtmeniz gereken iki seçenek vardır:
--force
: Başka bir onay almadan aşağıdakilerin tümünü 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ı. Belirtilmemesi durumunda komut, SDK'yı varsayılan kod tabanına (functions
) ekler.
Bu komut, uzantı için otomatik olarak oluşturulan bir SDK içeren bir Node paketi oluşturur ve bu paketi projenizin Cloud Functions kod tabanlarından birine ekler. Varsayılan kod tabanında (functions
), SDK aşağıdaki 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 istemi Evet olarak yanıtlayın.
Uzantı örneklerini yapılandırma
Uzantı yapılandırması 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şleve projeye özgü 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 kurucuyu 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ı, şifre gibi gizli değerler gerektiriyorsa Cloud Functions SDK'sındaki
defineSecret
işlevine de ihtiyacınız vardır: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ı, şifre gibi gizli değerler gerektiriyorsa Cloud Functions SDK'sındaki
defineSecret
işlevine de ihtiyacınız vardır: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 bir örneğe yalnızca küçük harf, sayı 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 anahtar değerlerinin
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
Normal 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ı, Firebase konsolunun Extensions kontrol panelindeki uzantınızın yükleme sonrası ayrıntılar sayfasında bulabilirsiniz (kontrol paneline özel 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
Eklentiyi, mevcut olmayan Firebase kaynaklarını (Cloud Firestorekoleksiyonlar, Realtime Database yollar, Cloud Storage paketler) kullanacak şekilde yapılandırdıysanız eklentiyi kullanmadan önce bunları oluşturun.
Eventarc etkinlik işleyicileri oluşturma
Bazı uzantılar, yürütme sırasında önemli olaylar olduğunda Eventarc'ta yayınlanır. Bir uzantı etkinlik yayınlarsa kendi özel mantığınızla bu etkinliklere tepki veren işlevler yazabilirsiniz. Bu, örneğin uzun süren görevler tamamlandığında kullanıcıları bilgilendirmek veya bir uzantı işlevinin çıktısını son işleme tabi tutmak için yararlı olabilir.
Uzantı tarafından yayınlanan etkinliklerden herhangi biri için işleyiciler tanımlamak istiyorsanız bunu her örneğin tetikleyici yöntemlerini kullanarak 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 değişiklik yaptıktan sonra hem uzantıyı hem de işleyiciyi yeniden dağıtın.
Birden fazla uzantı örneği yükleme
Aynı uzantıyı aynı projeye birden fazla kez yükleyebilirsiniz. Yüklenen her örnek, özelleştirilmiş kendi yapılandırmasına ve kendi uzantı kaynaklarına sahip olabilir. Yüklü her örneği, projenizde benzersiz olan örnek kimliğini kullanarak tanımlar ve referans olarak kullanırsınız.
Otomatik olarak oluşturulan SDK'nın oluşturucu işlevini, yüklemek ve yapılandırmak istediğiniz her örnek için bir kez çağırın.
Sonraki adımlar
Yüklü 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 durumunu, kullanımını ve günlüklerini kontrol etmek de dahil olmak üzere etkinliğini izleyin.
Yüklenen uzantınızı Firebase konsolunu kullanarak yönetin. Resmi Firebase uzantılarını yeniden yapılandırabilir, kaldırabilir ve en son sürüme güncelleyebilirsiniz.
Tüm projeler için en iyi uygulama olarak, projeniz için bütçe uyarıları oluşturmayı ve Firebase konsolunda Kullanım ve faturalandırma kontrol panelinizi izlemeyi unutmayın.