למידע נוסף על אינטרנט ו- Firebase

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

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

גרסאות SDK 8 ו -9

Firebase מספק שתי גרסאות SDK לאפליקציות אינטרנט, אחת מהן נמצאת כעת בטא:

  • 8. גרסה זו היא ממשק JavaScript כי Firebase שמרה במשך כמה שנים והיו מוכרת מפתחי אינטרנט עם אפליקציות Firebase קיימות.
  • הגרסה מודולרי 9 (בטא). SDK זה מציג גישה מודולרית מספקים מופחתת בגודל SDK ויעילות רבה יותר עם כלים לבנות JavaScript מודרניים כגון webpack או אוסף .

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

למרות שרוב גרסת ה- SDK 9 עוקבת אחר אותם דפוסים כמו גרסה 8, ארגון הקוד שונה. בדרך כלל, גרסה 8 מכוונת למרחב שמות ולדפוס שירות, ואילו גרסה 9 מכוונת לפונקציות נפרדות. לדוגמה, גרסה 8 של Dot-שרשור, כגון firebaseApp.auth() , מוחלפת בגירסה 9 על ידי יחיד getAuth() פונקציה שלוקחת firebaseApp וחוזר מופע אימות.

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

מה נתמך?

אמנם גרסאות 8 וגירסא 9 (בטא) בעלות סגנונות קוד שונים, אך הן מספקות תמיכה דומה מאוד לתכונות ואפשרויות Firebase. כפי שתיארנו בפירוט במדריך זה, שתי גרסאות ה- SDK תומכות בגרסאות JavaScript ו- Node.js לצד מספר אפשרויות להוספה / התקנה של ה- SDK.

הוסף ערכות SDK עם 8.0 (שמות מרווחים) 9.0 (בטא מודולרית)
npm
  • ל- JavaScript
  • עבור Node.js
  • ל- JavaScript
  • עבור Node.js
CDN (רשת משלוח תוכן)
  • ל- JavaScript
  • ל- JavaScript
אירוח כתובות אתרים
  • ל- JavaScript
  • עבור Node.js
  • בקרוב JavaScript ו- Node.js

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

גרסה 9 לאפליקציות חדשות

אם אתה מתחיל על אינטגרציה חדשה עם Firebase, אתה יכול להצטרף גם SDK גרסה 9 Beta כשאתה להוסיף לאתחל את ה- SDK .

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

import { getAuth, onAuthStateChanged } from "firebase/auth";

const auth = getAuth(firebaseApp);
onAuthStateChanged(auth, user => {
  // Check for user status
});

לדוגמאות נוספות ופרטים, עיין במדריכים עבור אחד מתחומי המוצרים כמו גם תיעוד הפניה גרסה 9 .

דרכים להוסיף את SDK האינטרנט לאפליקציה שלך

Firebase מספק ספריות JavaScript עבור מרבית מוצרי Firebase, כולל Remote Config, FCM ועוד. האופן שבו אתה מוסיף SDK של Firebase לאפליקציית האינטרנט שלך תלוי אם בחרת להשתמש ב- Firebase Hosting עבור האפליקציה שלך, באילו כלים אתה משתמש באפליקציה שלך (כמו חבילת מודולים), או אם האפליקציה שלך פועלת בדפדפן שאינו דפדפן. סביבה כמו Node.js.

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

  • npm (עבור מקבצי מודולים ו- Node.js)
  • CDN (רשת משלוח תוכן)
  • כתובות אתרים לאירוח Firebase

לקבלת הוראות התקנה מפורטות לשימוש בכל שיטה, לראות להוסיף Firebase אל App JavaScript שלך . שאר חלק זה מכיל מידע שיעזור לך לבחור בין האפשרויות הזמינות.

npm

הורדת חבילת ה- npm של Firebase (הכוללת הן חבילות דפדפן והן חבילות Node.js) מספקת לך עותק מקומי של Firebase SDK, אשר עשוי להיות נחוץ ליישומים שאינם דפדפנים כגון אפליקציות Node.js, React Native או Electron. ההורדה כוללת חבילות Node.js ו- React Native כאופציה לחבילות מסוימות. חבילות Node.js נחוצות לצעד העיבוד בצד השרת (SSR) של מסגרות ה- SSR.

שימוש NPM עם מודול bundler כגון webpack או אוסף מספק אפשרויות אופטימיזציה "עץ-שייק" קוד בשימוש ולהחיל polyfills ממוקד, אשר יכול להפחית את טביעת הרגל גודל משמעותי של האפליקציה שלך. יישום תכונות אלה עשוי להוסיף מורכבות מסוימת לתצורה ולשרשרת הבנייה שלך, אך כלי CLI המיינסטרים השונים יכולים לעזור במיתון זה. כלים אלה כוללים זוויתית , להגיב , Vue , בא , ואחרים.

לסיכום:

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

CDN (רשת משלוח תוכן)

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

לסיכום:

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

אירוח כתובות אתרים

אירוח Firebase מספק כתובות אתרים שמורות המאפשרות לך לשפר את הביצועים על ידי טעינת קבצים מאותו מקור. אם אתה כבר משתמש או מתכנן להשתמש ב- Firebase אירוח באפליקציה שלך, אתה יכול להוסיף SDK של JavaScript באמצעות כתובות אתרים לאחסון וליהנות מרווח ביצועים זה. בנוסף, שיטה זו תומכת באתחול אוטומטי של ה- SDK, דבר שיכול לפשט את הניהול של סביבות מרובות כגון dev, staging, and production. למידע נוסף על הוספת ערכות SDK באמצעות כתובות אירוח שמורות .

לסיכום:

  • מספק יתרון ביצועים קל על פני CDN
  • יכול לפשט את העבודה בסביבות פיתוח מרובות
  • נוח לאפליקציות שכבר משתמשות באירוח Firebase

גרסאות SDK של Firebase Web

נכון לעכשיו, Firebase מספק שתי גרסאות SDK לאינטרנט:

  • חבילת JavaScript התומכת בכל תכונות Firebase לשימוש בדפדפן.
  • חבילת Node.js בצד הלקוח התומכת בתכונות רבות - אך לא בכולן - Firebase. ראה את הרשימה של סביבות נתמכות .

שתי גרסאות ה- SDK הללו נועדו לסייע בבניית אפליקציות אינטרנט או אפליקציות לקוח לגישה של משתמשי קצה, כמו למשל בשולחן העבודה Node.js או ביישום IoT. אם המטרה שלך היא להגדיר גישה ניהולית מסביבות חסויה (כגון שרתים) להשתמש SDK של ניהול Firebase במקום.

איתור סביבה עם מקבצים ומסגרות

כשאתה מתקין את ה- SDK של Firebase באמצעות npm, הגירסאות JavaScript ו- Node.js מותקנות. החבילה מספקת זיהוי סביבה מפורט כדי לאפשר את החבילות המתאימות ליישום שלך.

אם הקוד שלך משתמש Node.js require הצהרות, ה- SDK מוצא את צרור צומת-ספציפי. אחרת, הגדרות של bundler שלך חייב להיות הבנתי נכון לקלוט שדה נקודת הכניסה הנכונה שלך package.json הקובץ (לדוגמה, main , browser , או module ). אם אתה נתקל בשגיאות זמן ריצה עם ה- SDK, בדוק כדי לוודא שהבונלר שלך מוגדר לתעדף את סוג החבילה הנכון עבור הסביבה שלך.

ספריות זמינות

אפשרויות התקנה נוספות

עיכוב טעינת SDK של Firebase (מ- CDN)

אתה יכול לעכב את הכללתם של ערכות ה- SDK של Firebase עד לטעינת הדף כולו.

  1. הוספת defer דגל לכל script תג עבור מערכות ה- SDK Firebase, אז לדחות את האתחול של Firebase באמצעות סקריפט השני, למשל:

    <script defer src="https://www.gstatic.com/firebasejs/8.8.0/firebase-app.js"></script>
    
    <script defer src="https://www.gstatic.com/firebasejs/8.8.0/firebase-auth.js"></script>
    <script defer src="https://www.gstatic.com/firebasejs/8.8.0/firebase-firestore.js"></script>
    
    // ...
    
    <script defer src="./init-firebase.js"></script>
    
  2. צור init-firebase.js קובץ, ואז לכלול את הבאה בקובץ:

    // TODO: Replace the following with your app's Firebase project configuration
    var firebaseConfig = {
      // ...
    };
    
    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);
    

השתמש במספר פרויקטים של Firebase באפליקציה אחת

ברוב המקרים, עליך לאתחל את Firebase רק באפליקציית ברירת מחדל אחת. אתה יכול לגשת ל- Firebase מאפליקציה זו בשתי דרכים שוות ערך:

// Initialize Firebase with a "default" Firebase project
var defaultProject = firebase.initializeApp(firebaseConfig);

console.log(defaultProject.name);  // "[DEFAULT]"

// Option 1: Access Firebase services via the defaultProject variable
var defaultStorage = defaultProject.storage();
var defaultFirestore = defaultProject.firestore();

// Option 2: Access Firebase services using shorthand notation
defaultStorage = firebase.storage();
defaultFirestore = firebase.firestore();

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

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

// Initialize Firebase with a default Firebase project
firebase.initializeApp(firebaseConfig);

// Initialize Firebase with a second Firebase project
var otherProject = firebase.initializeApp(otherProjectFirebaseConfig, "other");

console.log(firebase.app().name);  // "[DEFAULT]"
console.log(otherProject.name);    // "otherProject"

// Use the shorthand notation to access the default project's Firebase services
var defaultStorage = firebase.storage();
var defaultFirestore = firebase.firestore();

// Use the otherProject variable to access the second project's Firebase services
var otherStorage = otherProject.storage();
var otherFirestore = otherProject.firestore();

הפעל שרת אינטרנט מקומי לפיתוח

אם אתה בונה אפליקציית אינטרנט, חלקים מסוימים מ- SDK של Firebase JavaScript דורשים שתשרת את אפליקציית האינטרנט שלך משרת ולא ממערכת הקבצים המקומית. אתה יכול להשתמש Firebase CLI להריץ שרת מקומי.

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

כדי לשרת את אפליקציית האינטרנט שלך, תשתמש ב- Firebase CLI, כלי שורת פקודה.

  1. בקר בתיעוד Firebase CLI כדי ללמוד כיצד להתקין את CLI או עדכון לגרסה האחרונה שלה .

  2. אתחל את פרויקט Firebase שלך. הפעל את הפקודה הבאה משורש ספריית האפליקציות המקומית שלך:

    firebase init

  3. הפעל את השרת המקומי לפיתוח. הפעל את הפקודה הבאה משורש ספריית האפליקציות המקומית שלך:

    firebase serve

מקורות קוד פתוח עבור קבצי SDK של Firebase

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

Firkase JavaScript SDK

רוב Firebase JavaScript ערכות SDK מפותחים כמו ספריות קוד פתוח בציבור שלנו למאגר Firebase GitHub .

דוגמאות להפעלה מהירה

Firebase מקיימת אוסף של דוגמאות להפעלה מהירה עבור רוב ממשקי ה- API של Firebase באינטרנט. מצא quickstarts אלה בפומבי שלנו למאגר QuickStart Firebase GitHub . אתה יכול להשתמש בהתחלות מהירות אלה כקוד לדוגמא לשימוש ב- SDK של Firebase.