Algolia ile Firebase Cloud Functions Kullanımı

Bu yazıda Algolia’yı inceleyecek, Firebase ile bağlantısını kurup, functions özelliklerini projeye deploy edeceğim.

Cloud Firestore dokümantasyonunda Full Text Search önerisi olarak Algolia önerilmekte.

Algolia Nedir?

Image for post

Algolia, uygulamanızda gerçek zamanlı arama yapmanızı sağlayan servistir. Eldeki datayı, Algolia’ya deploy ettikten sonra kullanıcıların uygulama üzerinde çok detaylı ve hızlı bir şekilde arama hizmetini kullanmasını sağlayan arama üzerine iyi performans veren girişim.

Haliyle bu servis ücretsiz değil şöyle ki 50 bin kullanımına kadar “Community” paketini kullananlara karşı bu servis ücretsiz 50 bin kullanımdan fazla ihtiyaç var ise $29 ödeyerek kullanabiliyorsunuz. Community paketini kullanabilmek için önemli şartlardan birisi de uygulamanın ticari olmadığını söylemektir.

İlk olarak işe Firebase’de örnek bir proje açarak işe başlayalım.

Firebase de Proje Oluşturma

Image for post

Proje ismini verdikten sonra devam diyelim.

Image for post

Önemli Not: Kullanım tercihinin Spark yerine Blaze olması gerektiğini unutmayın, eğer Spark sürümde kullanıyorsanız functions işlemlerine izin verilmemektedir.

Projeyi oluşturduktan sonra “Cloud Firestore” dan bir veritabanını oluşturalım. Bu kısımda ise üretim modunda başlatma seçeneğini tıklayarak devam diyelim.

Image for post

Sonrasında Cloud Firestore’da bir db oluşmuş olacak burada Collection’lar tutarak veri modellemesini ve verileri tutma işlemini yapabiliriz.

Örnek olması açısından manuel olarak birkaç veri ekliyorum. Bunu yapmak için de “Koleksiyon başlatın” butonuna bastıktan sonra collection ismini “grade” yapıp gerekli parametreleri oluşturdum. Tabii ki gerçek bir projede bu kısım uygulama içinden oluşmaktadır.

Image for post

Sonrasında örnek olması açısından birkaç tane daha veri girelim.

Image for post

İlk kısım böylece de tamamlanmış oldu, şimdi ise node.js kullanarak, functions modülü oluşturacağız.

Modül Paketi Oluşturma

Image for post

mkdir ile example isimli klasör oluşturalım. Klasörün içine girdikten sonra aşağıdaki işlemleri sırasıyla yapalım.

1) nvm install 8.16.0
2) npm install -g firebase-tools
3) firebase login
4) firebase functions -add
5) firebase init
Image for post

Functions seçeneğini seçelim sonrasında FB’deki oluşturduğmuz örnek projeyi buradan seçelim.

Image for post
Image for post
Image for post

Algolia Node.js SDK Kurulumu

cd functions
npm install algoliasearch --save
npm install dotenv --save
npm install firebase --save

Bu komutlarla SDK kurulumu yapılır.

Image for post
Image for post

example klasörünün içindeki functions klasörü oluşmuş oldu.

Algolia’da Proje Kurulumu

Buradan üye olup create application diyebiliriz.

Image for post

Yazının ilk kısmında belirtiğim üzere çeşitli paketler mevcut, Free olan Community seçeneğini seçiyoruz. Ticari kullanımlar için bu paket kullanılamıyor.

Image for post

Burada sunucunun çalışacağı bölgeleri seçmemiz isteniyor. Yakın olduğu vs ms düşük olduğu için eu-west’i seçiyorum.

Image for post

Projeye ait API Keys’leri bulabilirsiniz. Functions config etmek için buradaki keyleri kullanmak gerekiyor.

Image for post
Image for post

Bir önemli nokta daha: Firebase proje ayarlarından “Yeni özel anahtar oluştur”a tıkladıktan sonra, serviceAccountKey.json dosyasını verir.

Bu json dosyasında Firebase projesine ait key bilgileri bulunur. Kullanmak için projenin üstteki görseldeki yerine kopyalamak gerekiyor.

Algolia Config Ayarları

Algoliasearch kullanmak için ve Algolia’ya güvenli bir şekilde erişmek için API anahtarlarına ihtiyacımız olacak. Firebase Cloud Functions, bu bilgileri ortam yapılandırmasında depolamanın güvenli bir yolunu sunar:

$ firebase functions:config:set algolia.appid="YOUR_APP_ID" algolia.apikey="YOUR_API_KEY

YOUR_APP_ID ve YOUR_API_KEY öğelerini Algolia’nızın kontrol panelinde bulabileceğiniz kendi anahtarlarınızla değiştirin ve komutu çalıştırın.

Node.js ile Firebase’deki Veriyi Algolia’ya Deploy Etme

index.js dosyasını açalım, ilgili tanımlamaları yapalım. ALGOLIA_APP_ID ve devamında kontrol panelindeki kendi anahtarlarınızı yazın ve değiştirin.

Sonrasında yapacağımız iş, Firebase’de olan veriyi Algolia’ya deploy etmek olacak. Burada ilk olarak document yolunu bulup, bir list halinde deploy edebiliyoruz.

node index.js komutu yazarak çalıştırdıktan sonra gelen veriyi deploy edecek.

Image for post

Deploy ettiğini kontrol etmek amacıyla Algolia’a bakalım.

Image for post

Evet, deploy ettiğimiz 3 veriyi grade isimli olarak Algolia’a da görmüş olduk.

Peki bundan sonra ne olmalı? Cloud Firestore’a her veri geldiğinde, güncellendiğinde ve silindiğinde bu yapıyı dinleyip Algolia’daki indexi güncellemesi gereken fonksiyonlara ihtiyacımız var.

  1. onCreate(), fonksiyon ile veriyi create etti ve Algolia içinde yarattı.
  2. onUpdate(), fonksiyon ile Firebase’deki veriyi dinledi ve güncelledi
  3. onWrite(), fonksiyon ile de her veriyi dinledi ve yazdı.

Bu işlev hazır olduğunda, deploy edelim:

firebase deploy --only functions

Sonrasında tüm fonksiyonlar deploy edilmiş olur.

Image for post
Image for post

Firebase Functions panelinde fonksiyonların çalışmasını kontrol edebiliriz.

Veriyi Dinlemek

Fonksiyonların testini yapmak için, Cloud Firestore’a bir veri daha girelim ve fonksiyonun bunu dinleyip Algolia’ya deploy edip etmediğini kontrol edelim.

Image for post

Kaydettikten sonra Algolia’ya bakalım.

Image for post

Evet! Veriyi dinledi ve Algolia’ya deploy etmiş oldu.

İnternet sitesi https://www.merttoptas.com
Yazı oluşturuldu 17

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön
%d blogcu bunu beğendi: