Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

השתמש ב- Cloud Firestore עם Firebase Realtime Database

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

למידע נוסף על ההבדלים בין מסדי הנתונים .

העברת נתונים ל- Cloud Firestore

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

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

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

  3. שיקוף נתונים חדשים ל- Firestore בזמן אמת. השתמש בפונקציות ענן כדי לכתוב נתונים חדשים למסד הנתונים החדש של Cloud Firestore כשהם מתווספים למאגר הנתונים בזמן אמת.

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

הקפד להסביר חיוב העלויות הן מסד זמן אמת ו ענן Firestore .

מפה את הנתונים שלך

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

הבדלים גדולים שיש לקחת בחשבון

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

  • שאילתות רדודות מציעות גמישות רבה יותר במבני נתונים היררכיים.
  • שאילתות מורכבות מציעות יותר פירוט ומפחיתות את הצורך בנתונים כפולים.
  • סמנים לשאילתות מציעים עמוד חזק יותר.
  • עסקאות אינן דורשות עוד שורש משותף לכל הנתונים שלך והן יעילות יותר.
  • עלויות החיוב שונות בין מסד נתונים בזמן אמת ו- Cloud Firestore. במקרים רבים, Cloud Firestore עשוי להיות יקר יותר ממסד הנתונים בזמן אמת, במיוחד אם אתה מסתמך על פעולות קטנות רבות. שקול לצמצם את מספר הפעולות במסד הנתונים שלך ולהימנע מכתיבות מיותרות. למידע נוסף על הבדלי חיוב בין מסד זמן אמת ו ענן firestore.

שיטות עבודה מומלצות בפעולה

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

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

// /cities/$CITY_KEY
{
  name: "New York",
  population: 8000000,
  capital: False
}

// /city-landmark/$CITY_KEY/$LANDMARK_KEY
{
  name: "Empire State Building",
  category: "Architecture"
}

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

// /cities/$CITY_ID
{
  name: "New York",
  population: 8000000,
  capital: False,
  landmarks: [... subcollection ...]
}

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

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

{
   cities: {
    // ...
   },

   capital-cities: {
     // ...
   }
}

ב- Cloud Firestore, תוכל לבטא רשימה של ערי הבירה בסדר האוכלוסייה כשאילתה אחת:

db.collection('cities')
    .where('capital', '==', true)
    .orderBy('population')

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

אבטח את הנתונים שלך

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

הבדלים גדולים שיש לקחת בחשבון

  • SDKs לנייד ולרשת משתמשים בכללי האבטחה של Cloud Firestore, בעוד ש- SDK של השרת משתמש בניהול גישה לזיהוי (IAM) לאבטחת נתונים.
  • כללי האבטחה של Cloud Firestore אינם נופלים אלא אם אתה משתמש בתו כללי. מסמכים ואוספים אינם יורשים כללים אחרת.
  • אתה כבר לא צריך נתונים validate בנפרד (כפי שעשית מסד זמן אמת ).
  • Cloud Firestore בודק כללים לפני ביצוע שאילתה כדי לוודא שלמשתמש יש את הגישה המתאימה לכל הנתונים המוחזרים על ידי השאילתה.

העבר נתונים היסטוריים ל- Cloud Firestore

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

כדי להימנע מחיפת נתונים חדשים בנתונים ישנים, מומלץ להוסיף תחילה את הנתונים ההיסטוריים שלך. אם אתה מוסיף נתונים חדשים לשני מסדי הנתונים בו זמנית, כפי שנדון בשלב הבא, הקפד לתת עדיפות לנתונים חדשים שנוספו ל- Cloud Firestore על ידי Cloud Functions.

כדי להעביר נתונים היסטוריים ל- Cloud Firestore, בצע את הפעולות הבאות:

  1. לייצא את הנתונים ממסד נתונים בזמן אמת או להשתמש גיבוי עדכני .
    1. עבור אל החלק מסד זמן אמת במסוף Firebase.
    2. בכרטיסייה נתונים, בחר הצומת ברמת השורש של מסד הנתונים שלך ובחר ייצוא JSON מהתפריט.
  2. צור מסד נתונים חדש ב- קלאוד Firestore ו להוסיף את הנתונים שלך .

    שקול את האסטרטגיות הבאות בעת העברת חלק מהנתונים שלך ל- Cloud Firestore:

    • כתוב סקריפט מותאם אישית שמעביר עבורך את הנתונים שלך. למרות שאנו לא יכולים להציע תבנית התסריט הזה, משום שכל הנתונים יהיו צרכים ייחודיים, ענן Firestore מומחים שלנו ערוץ סלאק או על הצפת מחסנית יכול לסקור ייעוץ תסריט או הצעתך עבור למצב הספציפי שלך.
    • השתמש ב- SDK של השרת (Node.js, Java, Python או Go) כדי לכתוב נתונים ישירות ל- Cloud Firestore. לקבלת הוראות בנוגע להגדרה בערכות פיתוח השרת, ראו תחילת עבודה .
    • כדי לזרז את הגירות נתונים גדולות, שימוש כותב לכלך ולשלוח עד 500 פעולות בקשת רשת יחידה.
    • כדי להישאר תחת מגבלות שיעור הענן Firestore , פעולות גבול 500 כותב / שני עבור כול אוסף.

הוסף נתונים חדשים ל- Cloud Firestore

כדי לשמור על שוויון בין מסדי הנתונים שלך, הוסף נתונים חדשים לשני מסדי הנתונים בזמן אמת. השתמש בפונקציות ענן כדי להפעיל כתיבה ל- Cloud Firestore בכל פעם שלקוח כותב למסד נתונים בזמן אמת. ודא ש- Cloud Firestore נותנת עדיפות לנתונים חדשים המגיעים מ- Cloud Functions על פני כל כתיבה שאתה מבצע מהעברת הנתונים ההיסטורית שלך.

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

הפוך את Cloud Firestore למסד הנתונים הראשי שלך עבור הנתונים שהועברו

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

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

  2. ודא כי הנתונים שלך מאובטחים כראוי. אמת את כללי האבטחה של Cloud Firestore או התקנת IAM שלך.