برای کمک به کاربران خود در کنترل داده های خود، تیم Firebase کتابخانه ای ایجاد کرد که دو فرآیند معمول داده کاربر را ساده می کند:
clearData
: دادههای کاربر را از سرویسهای خاص Firebase (در حال حاضر پایگاه داده بیدرنگ، Firestore و Storage) هنگامی که حساب خود را از طریق Firebase Authentication حذف میکند، حذف میکند.exportData
: یک کپی از داده های کاربر را از سرویس های Firebase در یک رشته JSON ذخیره می کند و آن را در فضای ذخیره سازی ابری آپلود می کند تا آنها بتوانند به راحتی آن را برای خود دانلود کنند.
به خواندن ادامه دهید تا بدانید چگونه میتوانید عملکردها را به برنامه خود اضافه کنید، یا مستقیماً به کد موجود در مخزن حریم خصوصی کاربر Firebase GitHub بروید.
clearData
یا exportData
به برنامه خود اضافه کنید
توابع clearData
و exportData
در کتابخانه بهعنوان توابع ابری پیادهسازی میشوند که بر روی دادهها در پایگاه داده بیدرنگ، ذخیرهسازی ابری و Cloud Firestore عمل میکنند. افزودن توابع در برنامه شخصی شما یک فرآیند سه مرحله ای است:
- فایل
user_privacy.json
کتابخانه را ویرایش کنید تا پایگاه داده بیدرنگ، Cloud Firestore و طرح فضای ذخیره سازی ابری برنامه شما را منعکس کند. - نصب
clearData
وexportData
به عنوان توابع ابری. - تریگرها را برای عملکردهای برنامه خود پیاده کنید.
- داده های
clearData
را با قوانین ذخیره سازی ایمن کنید.
فایل user_privacy.json
کتابخانه را ویرایش کنید
برای شروع، مخزن حریم خصوصی کاربر Firebase GitHub را شبیه سازی یا دانلود کنید.
وقتی این کار را انجام دادید، functions/user_privacy.json
در یک ویرایشگر متن باز کنید. فایل json دارای یک سری مسیرهای قابل تنظیم است که توابع clearData
و exportData
از آنها برای یافتن داده های برنامه شما در پایگاه داده بیدرنگ، Cloud Firestore و Cloud Storage استفاده می کنند. اگر برنامه شما فقط از یک یا دو مورد از این سرویس ها استفاده می کند، با حذف اشیاء JSON مرتبط با سرویس های استفاده نشده شروع کنید.
با از بین رفتن اشیاء، میتوانید مقادیر مکاننمای باقیمانده سرویسها را با ساختارهای داده واقعی که برنامهتان استفاده میکند جایگزین کنید.
مسیرهای پایگاه داده بیدرنگ را به داده های کاربر اضافه کنید
برای سفارشی کردن user_privacy.json
برای نمونه پایگاه داده بیدرنگ برنامه خود، لیست رشته های مکان نگهدار را در زیر "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
به عنوان توابع ابری
اگر هنوز با توابع ابری آشنا نیستید، نحوه استفاده از آنها را در راهنمای شروع به کار توابع ابری بخوانید.
هنگامی که با توابع Cloud راحت شدید، توابع clearData
و exportData
را به پروژه خود اضافه کنید:
-
user_data.json
سفارشی شده خود را در فهرستfunctions
خود کپی کنید. - کد را از
index.js
کتابخانه حریم خصوصی کاربر بهindex.js
پروژه خود کپی کنید.- اگر
clearData
استفاده نمی کنید، توابعclearData
،clearDatabaseData
،clearFirestoreData
وclearStorageData
را حذف کنید. - اگر
exportData
استفاده نمی کنید، توابعexportData
،exportDatabaseData
،exportFirestoreData
وexportStorageData
را حذف کنید.
- اگر
- توابع خود را مستقر کنید.
اجرای محرک ها برای clearData
و exportData
هر تابع به یک ماشه متفاوت نیاز دارد:
-
clearData
: زمانی فعال می شود که کاربر حساب خود را از طریق احراز هویت حذف کند. -
exportData
: توسط یک درخواست HTTP راه اندازی می شود.
یک تریگر clearData
پیاده سازی کنید
برای راه اندازی یک رویداد clearData
، باید از روشی از Authentication استفاده کنید. اگر هنوز این کار را انجام ندادهاید، احراز هویت را به برنامه خود اضافه کنید: پلتفرمهای Apple ، Android یا وب .
سپس، راهی برای فراخوانی روش delete
Authentication SDK برای پلتفرم خود اضافه کنید:
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 در توابع تماس از طریق درخواست های HTTP بیشتر بخوانید.
جزئیات درخواست:
- نوع:
POST
- URL:
https://us-central1-<var>PROJECT-ID<.var>.cloudfunctions.net/exportData
- متن:
<var>CURRENT_USER'S_UID</var>
تابع را مستقیماً در میزبانی Firebase فراخوانی کنید
اگر برنامه شما یک برنامه وب است که در میزبانی Firebase میزبانی می شود، می توانید تابع clearData
خود را از طریق یک ورودی rewrite
در فایل firebase.json
سایت فراخوانی کنید:
"hosting": {
"rewrites": [
{"source": "/exportData", "function": "exportData"}
]
}
با قوانین ذخیره سازی، داده های exportData
را ایمن کنید
برای خصوصی نگه داشتن دادههای صادر شده کاربران، قوانین فضای ذخیرهسازی ابری را اضافه کنید که دسترسی کاربر صادرکننده را محدود میکند.
- از فضای ذخیره سازی در کنسول Firebase دیدن کنید.
- تب Rules را باز کنید.
- قانون زیر را جایگذاری کنید، سپس روی انتشار کلیک کنید:
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... } }