Kullanıcı Verilerini Sil uzantısını kullanma

Kullanıcı Verilerini Sil uzantısı ( delete-user-data ), kullanıcı Firebase projenizden silindiğinde kullanıcının verilerini silmenize olanak tanır. Bu uzantıyı aşağıdakilerden birinden veya tümünden kullanıcı verilerini silmek için yapılandırabilirsiniz: Cloud Firestore, Realtime Database veya Cloud Storage. Uzantının veri silmeye yönelik her tetikleyicisi, kullanıcının UserId anahtarlanır.

Bu uzantı, kullanıcı gizliliğine saygı gösterilmesi ve uyumluluk gerekliliklerinin yerine getirilmesi açısından kullanışlıdır. Ancak bu uzantının kullanılması hükümet ve sektör düzenlemelerine uygunluğu garanti etmez.

Önkoşullar

Uzantıyı yükleyin

Uzantıyı yüklemek için Firebase Uzantısını Yükleme sayfasındaki adımları izleyin. Özetle aşağıdakilerden birini yapın:

Uzantının kurulumu sırasında bir dizi yapılandırma parametresi belirtmeniz istenecektir:

  • Bulut İşlevleri konumu:

    Bu uzantı için oluşturulan işlevleri dağıtmak istediğiniz konumu seçin. Genellikle veritabanınıza yakın bir konum istersiniz. Konum seçme konusunda yardım için konum seçim kılavuzuna bakın.

  • Cloud Firestore yolları:

    Cloud Firestore örneğinizdeki hangi yollar kullanıcı verilerini içeriyor? Cloud Firestore'u kullanmıyorsanız boş bırakın. Tam yolları virgülle ayırarak girin. Silinen kullanıcının Kullanıcı Kimliğini {UID} ile gösterebilirsiniz. Örneğin, users ve admins koleksiyonlarınız varsa ve her koleksiyonda, belge kimliği olarak Kullanıcı Kimliği bulunan dokümanlar varsa, bu durumda users/{UID},admins/{UID} girebilirsiniz.

  • Cloud Firestore silme modu:

    (Yalnızca Cloud Firestore paths parametresini kullanıyorsanız geçerlidir.) Cloud Firestore belgelerini nasıl silmek istiyorsunuz? Alt koleksiyonlardaki belgeleri de silmek için bu parametreyi recursive olarak ayarlayın.

  • Gerçek Zamanlı Veritabanı örneği:

    Hangi Gerçek Zamanlı Veritabanı örneğinden kullanıcı verilerini silmek istiyorsunuz?

  • Gerçek Zamanlı Veritabanı konumu:

    (Yalnızca Realtime Database instance parametresini sağladıysanız geçerlidir.) Hangi Realtime Database konumundan kullanıcı verilerini silmek istiyorsunuz?

  • Gerçek Zamanlı Veritabanı yolları:

    Realtime Database örneğinizdeki hangi yollar kullanıcı verilerini içeriyor? Gerçek Zamanlı Veritabanını kullanmıyorsanız boş bırakın. Tam yolları virgülle ayırarak girin. Silinen kullanıcının Kullanıcı Kimliğini {UID} ile gösterebilirsiniz. Örneğin: users/{UID},admins/{UID} .

  • Bulut Depolama yolları:

    Kullanıcı verilerini Google Cloud Storage'ın neresinde saklıyorsunuz? Cloud Storage kullanmıyorsanız boş bırakın. Depolama gruplarınızdaki dosya veya dizinlerin tam yollarını virgülle ayırarak girin. Silinen kullanıcının Kullanıcı Kimliğini temsil etmek için {UID} kullanın ve varsayılan Depolama grubunuzu temsil etmek için {DEFAULT} kullanın.

    İşte bir dizi örnek:

    • {UID}-pic.png dosya adlandırma şemasına sahip varsayılan paketinizdeki tüm dosyaları silmek için {DEFAULT}/{UID}-pic.png girin.
    • Ayrıca, {UID}-logs.txt dosya adlandırma şemasına sahip my-app-logs adlı başka bir paketteki tüm dosyaları silmek için, {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt girin {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt .
    • Ayrıca User ID etiketli bir dizini ve tüm dosyalarını ( media/{UID} gibi) silmek için, {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID} .

Silinecek verileri keşfetme

Bu uzantının silinecek verileri bulmak için kullandığı birkaç mekanizma vardır. Uzantının verileri silmesi için bu mekanizmaların açıkça yapılandırılması gerekir. Uzantı yalnızca sağlanan mekanizmalara göre silinmek üzere açıkça yapılandırılmış verileri siler.

Her hizmet arasında aşağıdaki davranış farklılıklarına dikkat edin:

  • Cloud Firestore: Varsayılan davranış bir belgeyi yüzeysel olarak silmektir (alt koleksiyonlar silinmeyecektir). Bir belgenin tüm alt koleksiyonlarını yinelemeli olarak silmek için, "Cloud Firestore silme modu" seçeneğini "Yinelemeli" olarak ayarlayın.
  • Gerçek Zamanlı Veritabanı: Belirtilen düğümdeki tüm veriler silinecektir.
  • Depolama: Bir dizin yolu belirtilirse tüm dosyalar ve alt dizinler silinir.

Yola göre

Cloud Firestore, Gerçek Zamanlı Veritabanı ve Bulut Depolama yollarını yapılandırırken, kimliği doğrulanmış kullanıcının UID'siyle değiştirilecek yollarda bir UID değişkeni tanımlamak mümkündür. Bir kullanıcı silindiğinde uzantı, söz konusu UID'de belirtilen yollarda anahtarlanan tüm verileri siler, örneğin:

  • Cloud Firestore yolları: users/{UID},admins/{UID}
  • Gerçek Zamanlı Veritabanı yolları: likes/{UID}
  • Cloud Storage yolları: {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg

Otomatik Keşif (Bulut Firestore)

Uzantının silinecek Firestore belgelerini otomatik olarak bulmasını sağlamak için "Otomatik bulmayı etkinleştir" yapılandırma parametresini "Evet" olarak ayarlayın.

Otomatik bulma, yapılandırmanıza göre silinmesi gereken koleksiyonları ve belgeleri bulmak için veritabanını otomatik olarak dolaşarak çalışır. Uzantı, bu koleksiyonları ve belgeleri aşağıdaki yöntemle tanımlar:

  1. İlk olarak uzantı, veritabanındaki tüm kök koleksiyonları bulur. Bir koleksiyonun kimliği kullanıcının UID'siyle eşleşirse koleksiyonun tamamı silinir (silme işlemi, uzantıların "Cloud Firestore silme modu" yapılandırmasına bağlı olarak özyinelemeli veya yüzeyseldir).
  2. İkinci olarak, koleksiyon kimliği eşleşmezse uzantı, belge kimliğinin kullanıcının UID'siyle eşleşmesi durumunda belgeyi tanımlamaya ve silmeye çalışacaktır.
  3. Son olarak her belge için: a. Geçerli arama derinliği (aşağıya bakın) yapılandırılan arama derinliğinden az veya ona eşitse, işlem mevcut belgenin tüm alt koleksiyonları için tekrarlanacaktır. B. Arama alanları yapılandırılmışsa uzantı, sağlanan alanların kullanıcının UID'siyle eşleşip eşleşmediğini kontrol eder. Bir eşleşme bulunursa belge silinecektir.

Arama Derinliği

Uzantı, yapılandırılabilir bir arama derinliği değeri sunar (varsayılan olarak 3'tür). Geçiş, yalnızca geçerli arama derinliğinin yapılandırılan arama derinliğinden küçük veya ona eşit olması durumunda gerçekleştirilecektir. Geçerli arama derinliği, geçerli koleksiyonun veya belgelerin ana koleksiyonunun derinliğine bağlıdır; örneğin

/users = 1
/users/<document-id> = 1
/users/<document-id>/comments = 2
/users/<document-id>/comments/<document-id> = 2

Bu uzantı, dizilerde veya haritalarda saklanan UID'leri otomatik olarak SİLMEZ ve yukarıda belirtilen derinliği aşan derinlemesine iç içe geçmiş alt koleksiyonlarda depolanan kullanıcı kimliği tarafından anahtarlanan verileri aramaz.