שימוש בתוסף Delete User Data

התוסף Delete User Data ( delete-user-data ) מאפשר לך למחוק נתונים של משתמש כאשר המשתמש נמחק מפרויקט Firebase שלך. אתה יכול להגדיר את התוסף הזה כדי למחוק נתוני משתמש מכל אחד או מכולם: Cloud Firestore, Realtime Database או Cloud Storage. כל טריגר של התוסף למחיקת נתונים מוצמד ל- UserId של המשתמש.

תוסף זה שימושי לכיבוד פרטיות המשתמש ולמילוי דרישות התאימות. עם זאת, השימוש בתוסף זה אינו מבטיח עמידה בתקנות הממשלה והתעשייה.

דרישות מוקדמות

  • עליך להשתמש באימות Firebase כדי לנהל את המשתמשים שלך.

  • תוסף זה מוחק רק נתונים מ- Cloud Firestore , Realtime Database ו- Cloud Storage . אם אתה מאחסן נתוני משתמש במקום אחר, עליך למחוק גם נתוני משתמש מאותם מקורות כאשר אתה מוחק משתמשים.

התקן את התוסף

כדי להתקין את התוסף, בצע את השלבים בדף התקנת הרחבת Firebase . לסיכום, בצע אחת מהפעולות הבאות:

  • מסוף Firebase: לחץ על הלחצן הבא:

    התקן את התוסף Delete User Data

  • CLI: הפעל את הפקודה הבאה:

    firebase ext:install firebase/delete-user-data --project=projectId-or-alias
    

במהלך התקנת התוסף, תתבקש לציין מספר פרמטרים של תצורה:

  • מיקום ענן פונקציות:

    בחר את המיקום שבו ברצונך לפרוס את הפונקציות שנוצרו עבור הרחבה זו. בדרך כלל אתה רוצה מיקום קרוב למסד הנתונים שלך. לקבלת עזרה בבחירת מיקום, עיין במדריך בחירת המיקום .

  • נתיבים של Cloud Firestore:

    אילו נתיבים במופע Cloud Firestore שלך ​​מכילים נתוני משתמש? השאר ריק אם אינך משתמש ב-Cloud Firestore. הזן את הנתיבים המלאים, מופרדים בפסיקים. אתה יכול לייצג את זיהוי המשתמש של המשתמש שנמחק באמצעות {UID} . לדוגמה, אם יש לך את האוספים users ומנהלי admins , ולכל אוסף יש מסמכים עם מזהה המשתמש כמזהי מסמכים, תוכל להזין users/{UID},admins/{UID} .

  • מצב מחיקה של Cloud Firestore:

    (מתאים רק אם אתה משתמש בפרמטר Cloud Firestore paths .) כיצד ברצונך למחוק מסמכי Cloud Firestore? כדי למחוק גם מסמכים בתתי-אוספים, הגדר פרמטר זה recursive .

  • מופע מסד נתונים בזמן אמת:

    מאיזה מופע Realtime Database אתה רוצה למחוק את נתוני המשתמש?

  • מיקום מסד נתונים בזמן אמת:

    (רלוונטי רק אם סיפקת את הפרמטר Realtime Database instance .) מאיזה מיקום Realtime Database אתה רוצה למחוק את נתוני המשתמש?

  • נתיבי מסד נתונים בזמן אמת:

    אילו נתיבים במופע Realtime Database שלך ​​מכילים נתוני משתמש? השאר ריק אם אינך משתמש במסד נתונים בזמן אמת. הזן את הנתיבים המלאים, מופרדים בפסיקים. אתה יכול לייצג את זיהוי המשתמש של המשתמש שנמחק באמצעות {UID} . לדוגמה: users/{UID},admins/{UID} .

  • נתיבי אחסון בענן:

    היכן ב-Google Cloud Storage אתה מאחסן נתוני משתמשים? השאר ריק אם אינך משתמש ב-Cloud Storage. הזן את הנתיבים המלאים לקבצים או ספריות בדלי האחסון שלך, מופרדים בפסיקים. השתמש ב- {UID} כדי לייצג את מזהה המשתמש של המשתמש שנמחק, והשתמש ב- {DEFAULT} כדי לייצג את דלי האחסון המוגדר כברירת מחדל.

    הנה שורה של דוגמאות:

    • כדי למחוק את כל הקבצים בדלי ברירת המחדל שלך עם ערכת שמות הקבצים {UID}-pic.png , הזן {DEFAULT}/{UID}-pic.png .
    • כדי למחוק גם את כל הקבצים בדלי אחר שנקרא my-app-logs עם ערכת שמות הקבצים {UID}-logs.txt , הזן {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt .
    • כדי למחוק גם ספרייה עם תווית User ID ואת כל הקבצים שלה (כמו media/{UID} ), הזן {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID} .

גילוי נתונים למחיקה

ישנם כמה מנגנונים שבהם תוסף זה משתמש כדי לגלות נתונים למחיקה. יש להגדיר את המנגנונים האלה במפורש כדי שהתוסף ימחק נתונים. התוסף ימחק רק נתונים שהוגדרו במפורש למחיקה בהתבסס על המנגנונים שסופקו.

היו מודעים להבדלים ההתנהגותיים הבאים בין כל שירות:

  • Cloud Firestore: התנהגות ברירת המחדל היא מחיקה רדודה של מסמך (אוספי משנה לא יימחקו). כדי למחוק באופן רקורסיבי את כל אוספי המשנה של מסמך, הגדר את האפשרות "מצב מחיקה של Cloud Firestore" ל"רקורסיבי".
  • מסד נתונים בזמן אמת: כל הנתונים בצומת שצוין יימחקו.
  • אחסון: אם צוין נתיב ספרייה, כל הקבצים וספריות המשנה יימחקו.

בדרך

בעת הגדרת הנתיבים של Cloud Firestore, Realtime Database ו-Cloud Storage, ניתן להגדיר משתנה UID בנתיבים שיוחלף ב-UID של המשתמש המאומת. כאשר משתמש נמחק, התוסף ימחק את כל הנתונים שהוקפדו באותו UID בנתיבים הנתונים, לדוגמה:

  • נתיב/נתיבי Cloud Firestore: users/{UID},admins/{UID}
  • נתיב/נתיבי מסד נתונים בזמן אמת: likes/{UID}
  • נתיב/נתיבי אחסון בענן: {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg

גילוי אוטומטי (Cloud Firestore)

כדי לאפשר לתוסף לגלות אוטומטית מסמכי Firestore למחיקה, הגדר את פרמטר התצורה "אפשר גילוי אוטומטי" ל"כן".

גילוי אוטומטי פועל על ידי מעבר אוטומטי של מסד הנתונים כדי למצוא אוספים ומסמכים שאותם יש למחוק בהתאם לתצורה שלך. ההרחבה מזהה את אותם אוספים ומסמכים במתודולוגיה הבאה:

  1. ראשית, התוסף מוצא את כל אוספי השורש במסד הנתונים. אם המזהה של אוסף תואם לזה של ה-UID של המשתמש, האוסף כולו נמחק (המחיקה היא רקורסיבית או רדודה, בהתאם לתצורת התוספים עבור "מצב מחיקה של Cloud Firestore").
  2. שנית, אם מזהה האוסף אינו תואם, התוסף ינסה לזהות ולמחוק מסמך אם מזהה המסמך שלו תואם לזה של ה-UID של המשתמש.
  3. לבסוף, לכל מסמך: א. אם עומק החיפוש הנוכחי (ראה להלן) קטן או שווה לעומק החיפוש שהוגדר, התהליך יחזור על עצמו עבור כל תת-אוספי המסמך הנוכחי. ב. אם הוגדרו שדות חיפוש, התוסף יבדוק אם השדות שסופקו תואמים ל-UID של המשתמש. אם תימצא התאמה, המסמך יימחק.

עומק חיפוש

התוסף מציע ערך עומק חיפוש שניתן להגדרה (ברירת המחדל הוא 3). מעבר יתבצע רק אם עומק החיפוש הנוכחי קטן או שווה לעומק החיפוש שהוגדר. עומק החיפוש הנוכחי מבוסס על עומק האוסף הנוכחי או אוסף האב של המסמכים, למשל

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

תוסף זה לא ימחק אוטומטית מזהי UID המאוחסנים במערכים או במפות, והוא לא יחפש נתונים שנקבעו על ידי מזהה משתמש המאוחסנים בתתי אוספים מקוננים עמוק מעבר לעומק שצוין למעלה.