supabase react native

Supabase React Native Kurulumu: Expo ile Auth ve Backend

Supabase, Expo projelerinde auth ve PostgreSQL backend'i hızlı kurmak için kullanılabilir. Asıl kritik nokta client bağlantısından çok veri erişim kurallarıdır.

FaturaTik içerik ekibiSon gözden geçirme:

Supabase, PostgreSQL tabanlı database, authentication, storage ve server-side özellikler sunan managed backend platformudur.

Expo uygulamalarında özellikle MVP aşamasında ayrı bir backend projesi kurmadan hızlı ilerlemek için kullanılabilir.

Expo projesine Supabase eklemek

Supabase'in React Native quickstart'ı Expo projesi oluşturma ve @supabase/supabase-js istemcisini gerekli React Native bağımlılıklarıyla kurma akışı gösterir.

Tipik kurulumda client helper oluşturulur ve public proje URL/key kullanılır.

Public key neden uygulamada olabilir?

Mobil uygulama binary'si kullanıcı cihazındadır. Bu nedenle client içine koyduğunuz hiçbir değer gerçek secret kabul edilmemelidir.

Supabase client'ın public/anon veya publishable key'i bu modele göre tasarlanır. Güvenlik yalnız key'i saklamaya değil, database erişimini Row Level Security ile sınırlandırmaya dayanmalıdır.

Service-role gibi yüksek yetkili secret'lar ise mobile bundle'a kesinlikle konulmamalıdır.

Authentication akışı

Basit auth:

signup
→ session
→ profile
→ protected data

şeklinde kurulabilir.

Uygulama açıldığında mevcut session okunur ve auth state değişimleri dinlenir.

Asıl önemli konu: RLS

Örneğin kullanıcının yalnız kendi gelir kayıtlarını görmesi gerekiyorsa politika bu sınırı database seviyesinde korumalıdır.

Sadece UI'da:

WHERE user_id = currentUser.id

uygulamak güvenlik sınırı değildir.

Client farklı request gönderebilir. Doğru sınır database policy'sidir.

Organization modeli ne zaman gerekir?

Ürünün tek kullanıcı yerine şirket veya ekip hesabı olacaksa verileri yalnız user_id ile bağlamak ileride sorun çıkarabilir.

Bunun yerine:

organizations
organization_members
revenues

gibi model düşünmek daha ölçeklenebilir olabilir.

Environment variable kullanımı

Public URL/key için Expo'nun client environment yaklaşımı kullanılabilir.

Gerçek secret gerektiren işlemler:

third-party private API key
payment secret
encryption key
service-role key

server tarafında tutulmalıdır.

Supabase ne zaman iyi seçim değildir?

Çok özel infrastructure gerektiren veya tüm backend davranışının kendi servislerinize bağlı olduğu sistemlerde ayrı backend mantıklı olabilir.

Fakat MVP'de hedef ürün değerini kanıtlamaksa auth, DB ve storage için yönetilen platform kullanmak geliştirme maliyetini ciddi azaltabilir.

Sonuç

Supabase entegrasyonunda en kolay kısım client kurulumudur.

Üretim kalitesini belirleyen asıl konular:

veri modeli
RLS
secret sınırı
organization modeli
audit
server-side kritik işlemler

olur.

Sıkça Sorulan Sorular

Supabase React Native ile çalışır mı?

Evet. Supabase resmi dokümantasyonunda React Native ve Expo için Auth quickstart bulunur.

Supabase service role key mobil uygulamaya konur mu?

Hayır. Yüksek yetkili service-role benzeri secret'lar server tarafında tutulmalıdır.

Supabase kullanırken RLS gerekli mi?

Client'ın doğrudan database API'sine eriştiği yapılarda kullanıcıların yalnız yetkili olduğu satırlara erişmesini sağlamak için RLS temel güvenlik katmanıdır.

Kaynaklar

Bir sonraki adım

Backend'den sonra gelir operasyonunu da tek yerde topla

FaturaTik, internet gelirlerini ortak bir finansal modele dönüştürerek takip etmeyi hedefler.

FaturaTik'i keşfet