נקה וייצא נתוני משתמש קצה

כדי לעזור לך לעזור למשתמשים שלך לשלוט בנתונים שלהם, צוות Firebase יצר ספרייה שמפשטת שני תהליכים נפוצים של נתוני משתמשים:

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

  • exportData : שומר עותק של נתוני משתמש משירותי Firebase במחרוזת JSON, ומעלה אותו ל-Cloud Storage כדי שיוכלו להוריד אותו בקלות בעצמם.

המשך לקרוא כדי לגלות כיצד להוסיף את הפונקציות לאפליקציה שלך, או לקפוץ ישירות לקוד במאגר GitHub של פרטיות משתמש Firebase .

הוסף clearData או exportData לאפליקציה שלך

הפונקציות clearData ו- exportData בספרייה מיושמות כפונקציות ענן הפועלות על נתונים במסד נתונים בזמן אמת, ב-Cloud Storage וב-Cloud Firestore. הוספת הפונקציות באפליקציה משלך היא תהליך בן שלושה שלבים:

  1. ערוך את הקובץ user_privacy.json של הספרייה כך שישקף את סכימת מסד הנתונים בזמן אמת, Cloud Firestore ו-Cloud Storage של האפליקציה שלך.
  2. פרוס clearData ו- exportData כפונקציות ענן.
  3. הטמע טריגרים עבור הפונקציות באפליקציה שלך.
  4. אבטח נתוני clearData עם כללי אחסון.

ערוך את הקובץ user_privacy.json של הספרייה

כדי להתחיל, שכפל או הורד את מאגר פרטיות המשתמש של Firebase GitHub .

לאחר שעשית זאת, פתח functions/user_privacy.json בעורך טקסט. לקובץ ה-json יש סדרה של נתיבים הניתנים להתאמה אישית שבהם משתמשות הפונקציות clearData ו- exportData כדי למצוא את נתוני האפליקציה שלך במסד נתונים בזמן אמת, ב-Cloud Firestore וב-Cloud Storage. אם האפליקציה שלך משתמשת רק באחד או שניים מהשירותים האלה, התחל על ידי מחיקת אובייקטי JSON המשויכים לשירותים שאינם בשימוש.

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

הוסף נתיבים של מסד נתונים בזמן אמת לנתוני המשתמש

כדי להתאים אישית user_privacy.json עבור מופע Realtime Database של האפליקציה שלך, החלף את רשימת המחרוזות של מצייני המיקום תחת "database" בנתיבים בפועל לנתוני משתמש:

...
  "database": {
    "clear": [
      "/users/UID_VARIABLE",    // Replace with your
      "/admins/UID_VARIABLE"    // actual RTDB paths
    ],
    "export": [
      "/users/UID_VARIABLE",    // Replace with your
      "/admins/UID_VARIABLE"    // actual RTDB paths
    ]
  },
...

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

הוסף אובייקטים של Cloud Firestore המכילים נתוני משתמש

כדי להתאים אישית user_privacy.json עבור מופע Cloud Firestore של האפליקציה שלך, החלף את רשימת אובייקטי המיקום תחת "firestore" באובייקטים ממשיים של Cloud Firestore המכילים נתוני משתמש:

...
  "firestore": {
    "clear": [
      {"collection": "users", "doc": "UID_VARIABLE", "field": "name"},
      {"collection": "users", "doc": "UID_VARIABLE"},    // Replace with your
      {"collection": "admins", "doc": "UID_VARIABLE"}    // actual Firestore paths
    ],
    "export": [
      {"collection": "users", "doc": "UID_VARIABLE", "field": "name"},
      {"collection": "users", "doc": "UID_VARIABLE"},    // Replace with your
      {"collection": "admins", "doc": "UID_VARIABLE"}    // actual Firestore paths
    ]
  },
...

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

הוסף את דלי ה-Cloud Storage ואת שם הקובץ עם נתוני המשתמש

כדי להתאים אישית user_privacy.json עבור מופע Cloud Storage של האפליקציה שלך, החלף את דלי האחסון ואת שם הקובץ תחת "storage" בערכים בפועל:

...
  "storage": {
    "clear": [    // Replace with your actual storage data
      ["clear-export.appspot.com", "UID_VARIABLE/sample_data.json"],
      ["clear-exportappspot.com", "UID_VARIABLE"]
    ],
    "export": [    // Replace with your actual storage data
      ["clear-export.appspot.com", "UID_VARIABLE/sample_data.json"]
    ]
  },
...

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

פרוס clearData ו- exportData כפונקציות ענן

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

לאחר שתרגיש בנוח עם פונקציות ענן, הוסף את הפונקציות clearData ו- exportData לפרויקט שלך:

  1. העתק את user_data.json המותאם אישית שלך לספריית functions שלך.
  2. העתק קוד index.js של ספריית פרטיות המשתמש ל- index.js של הפרויקט שלך.
    • אם אינך משתמש clearData , השמט את הפונקציות clearData , clearDatabaseData , clearFirestoreData ו- clearStorageData .
    • אם אינך משתמש exportData , הסר את הפונקציות exportData , exportDatabaseData , exportFirestoreData ו- exportStorageData .
  3. פרוס את הפונקציות שלך.

הטמע טריגרים עבור clearData ו- exportData

כל פונקציה דורשת טריגר אחר:

  • clearData : מופעל כאשר משתמש מוחק את חשבונו באמצעות אימות.
  • exportData : מופעל על ידי בקשת HTTP.

יישם טריגר clearData

כדי להפעיל אירוע clearData , עליך להשתמש בשיטה מ-Authentication. אם עדיין לא עשית זאת, הוסף אימות לאפליקציה שלך: פלטפורמות אפל , אנדרואיד או אינטרנט .

לאחר מכן, הוסף דרך להפעיל את שיטת delete של SDK של Authentication עבור הפלטפורמה שלך:

iOS+

FirebaseAuth.User.delete { error in
  if let error = error {
    print("Error deleting user: \(error)")
  }
}

דְמוּי אָדָם

FirebaseAuth.getCurrentUser().delete();

אינטרנט

firebase.auth().currentUser.delete().catch(function(error) {
  if (error.code === 'auth/requires-recent-login') {
    window.alert('Please sign-in and try again.');
    firebase.auth().signOut();
  }
});

יישם טריגר של exportData

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

פרטי הבקשה:

  • סוג: POST
  • כתובת אתר: https://us-central1-<var>PROJECT-ID<.var>.cloudfunctions.net/exportData
  • גוף: <var>CURRENT_USER'S_UID</var>

הפעל את הפונקציה ישירות ב-Firebase Hosting

אם האפליקציה שלך היא אפליקציית אינטרנט המתארחת ב-Firebase Hosting, תוכל להפעיל את פונקציית clearData שלך באמצעות ערך rewrite בקובץ firebase.json של האתר:

  "hosting": {
    "rewrites": [
       {"source": "/exportData", "function": "exportData"}
    ]
  }

נתוני exportData נתונים מאובטחים עם כללי אחסון

כדי לשמור על פרטיות הנתונים המיוצאים של המשתמשים שלך, הוסף כללי Cloud Storage המגבילים את הגישה למשתמש המייצא.

  1. בקר באחסון במסוף Firebase .
  2. פתח את הכרטיסייה כללים .
  3. הדבק את הכלל הבא ולאחר מכן לחץ על פרסם :
service firebase.storage {
  match /b/{bucket}/o {
    match /exportData {
      // Only allow access to the user who requested the export
      match /{uid} {
        allow read, write: if request.auth.uid == uid
      }
      match /{uid}/{path=**} {
        allow read, write: if request.auth.uid == uid
      }
    }
    // Other application rules...
  }
}

הוסף clearData או exportData לאפליקציה שלך

הפונקציות clearData ו- exportData בספרייה מיושמות כפונקציות ענן הפועלות על נתונים במסד נתונים בזמן אמת, ב-Cloud Storage וב-Cloud Firestore. הוספת הפונקציות באפליקציה משלך היא תהליך בן שלושה שלבים:

  1. ערוך את הקובץ user_privacy.json של הספרייה כך שישקף את סכימת מסד הנתונים בזמן אמת, Cloud Firestore ו-Cloud Storage של האפליקציה שלך.
  2. פרוס clearData ו- exportData כפונקציות ענן.
  3. הטמע טריגרים עבור הפונקציות באפליקציה שלך.
  4. אבטח נתוני clearData עם כללי אחסון.

ערוך את הקובץ user_privacy.json של הספרייה

כדי להתחיל, שכפל או הורד את מאגר פרטיות המשתמש של Firebase GitHub .

לאחר שעשית זאת, פתח functions/user_privacy.json בעורך טקסט. לקובץ ה-json יש סדרה של נתיבים הניתנים להתאמה אישית שבהם משתמשות הפונקציות clearData ו- exportData כדי למצוא את נתוני האפליקציה שלך במסד נתונים בזמן אמת, ב-Cloud Firestore וב-Cloud Storage. אם האפליקציה שלך משתמשת רק באחד או שניים מהשירותים האלה, התחל על ידי מחיקת אובייקטי JSON המשויכים לשירותים שאינם בשימוש.

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

הוסף נתיבים של מסד נתונים בזמן אמת לנתוני המשתמש

כדי להתאים אישית user_privacy.json עבור מופע Realtime Database של האפליקציה שלך, החלף את רשימת המחרוזות של מצייני המיקום תחת "database" בנתיבים בפועל לנתוני משתמש:

...
  "database": {
    "clear": [
      "/users/UID_VARIABLE",    // Replace with your
      "/admins/UID_VARIABLE"    // actual RTDB paths
    ],
    "export": [
      "/users/UID_VARIABLE",    // Replace with your
      "/admins/UID_VARIABLE"    // actual RTDB paths
    ]
  },
...

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

הוסף אובייקטים של Cloud Firestore המכילים נתוני משתמש

כדי להתאים אישית user_privacy.json עבור מופע Cloud Firestore של האפליקציה שלך, החלף את רשימת אובייקטי המיקום תחת "firestore" באובייקטים ממשיים של Cloud Firestore המכילים נתוני משתמש:

...
  "firestore": {
    "clear": [
      {"collection": "users", "doc": "UID_VARIABLE", "field": "name"},
      {"collection": "users", "doc": "UID_VARIABLE"},    // Replace with your
      {"collection": "admins", "doc": "UID_VARIABLE"}    // actual Firestore paths
    ],
    "export": [
      {"collection": "users", "doc": "UID_VARIABLE", "field": "name"},
      {"collection": "users", "doc": "UID_VARIABLE"},    // Replace with your
      {"collection": "admins", "doc": "UID_VARIABLE"}    // actual Firestore paths
    ]
  },
...

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

הוסף את דלי ה-Cloud Storage ואת שם הקובץ עם נתוני המשתמש

כדי להתאים אישית user_privacy.json עבור מופע Cloud Storage של האפליקציה שלך, החלף את דלי האחסון ואת שם הקובץ תחת "storage" בערכים בפועל:

...
  "storage": {
    "clear": [    // Replace with your actual storage data
      ["clear-export.appspot.com", "UID_VARIABLE/sample_data.json"],
      ["clear-exportappspot.com", "UID_VARIABLE"]
    ],
    "export": [    // Replace with your actual storage data
      ["clear-export.appspot.com", "UID_VARIABLE/sample_data.json"]
    ]
  },
...

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

פרוס clearData ו- exportData כפונקציות ענן

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

לאחר שתרגיש בנוח עם פונקציות ענן, הוסף את הפונקציות clearData ו- exportData לפרויקט שלך:

  1. העתק את user_data.json המותאם אישית שלך לספריית functions שלך.
  2. העתק קוד index.js של ספריית פרטיות המשתמש ל- index.js של הפרויקט שלך.
    • אם אינך משתמש clearData , השמט את הפונקציות clearData , clearDatabaseData , clearFirestoreData ו- clearStorageData .
    • אם אינך משתמש exportData , הסר את הפונקציות exportData , exportDatabaseData , exportFirestoreData ו- exportStorageData .
  3. פרוס את הפונקציות שלך.

הטמע טריגרים עבור clearData ו- exportData

כל פונקציה דורשת טריגר אחר:

  • clearData : מופעל כאשר משתמש מוחק את חשבונו באמצעות אימות.
  • exportData : מופעל על ידי בקשת HTTP.

יישם טריגר clearData

כדי להפעיל אירוע clearData , עליך להשתמש בשיטה מ-Authentication. אם עדיין לא עשית זאת, הוסף אימות לאפליקציה שלך: פלטפורמות אפל , אנדרואיד או אינטרנט .

לאחר מכן, הוסף דרך להפעיל את שיטת delete של SDK של Authentication עבור הפלטפורמה שלך:

iOS+

FirebaseAuth.User.delete { error in
  if let error = error {
    print("Error deleting user: \(error)")
  }
}

דְמוּי אָדָם

FirebaseAuth.getCurrentUser().delete();

אינטרנט

firebase.auth().currentUser.delete().catch(function(error) {
  if (error.code === 'auth/requires-recent-login') {
    window.alert('Please sign-in and try again.');
    firebase.auth().signOut();
  }
});

יישם טריגר של exportData

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

פרטי הבקשה:

  • סוג: POST
  • כתובת אתר: https://us-central1-<var>PROJECT-ID<.var>.cloudfunctions.net/exportData
  • גוף: <var>CURRENT_USER'S_UID</var>

הפעל את הפונקציה ישירות ב-Firebase Hosting

אם האפליקציה שלך היא אפליקציית אינטרנט המתארחת ב-Firebase Hosting, תוכל להפעיל את פונקציית clearData שלך באמצעות ערך rewrite בקובץ firebase.json של האתר:

  "hosting": {
    "rewrites": [
       {"source": "/exportData", "function": "exportData"}
    ]
  }

נתוני exportData נתונים מאובטחים עם כללי אחסון

כדי לשמור על פרטיות הנתונים המיוצאים של המשתמשים שלך, הוסף כללי Cloud Storage המגבילים את הגישה למשתמש המייצא.

  1. בקר באחסון במסוף Firebase .
  2. פתח את הכרטיסייה כללים .
  3. הדבק את הכלל הבא ולאחר מכן לחץ על פרסם :
service firebase.storage {
  match /b/{bucket}/o {
    match /exportData {
      // Only allow access to the user who requested the export
      match /{uid} {
        allow read, write: if request.auth.uid == uid
      }
      match /{uid}/{path=**} {
        allow read, write: if request.auth.uid == uid
      }
    }
    // Other application rules...
  }
}