במדריך למתחילים הזה נסביר איך להגדיר את Cloud Firestore, להוסיף נתונים ואז להשתמש בפעולות ליבה או בפעולות צינור עיבוד נתונים כדי לשלוח שאילתות לגבי הנתונים שהוספתם במסוף Firebase, באמצעות ספריות לקוח של שרת ל-Java, ל-Node.js ול-Python.
אפשר להשתמש בספריות הלקוח האלה כדי להגדיר סביבות שרתים עם הרשאות וגישה מלאה למסד הנתונים.
יצירת מסד נתונים של Cloud Firestore
אם עדיין לא יצרתם פרויקט ב-Firebase: במסוף Firebase, לוחצים על Add project ופועלים לפי ההוראות במסך כדי ליצור פרויקט ב-Firebase או להוסיף שירותי Firebase לפרויקט קיים ב-Google Cloud.
בחלונית שמימין, עוברים אל Databases & Storage > Firestore.
לוחצים על Create database.
בוחרים באפשרות Enterprise כמצב מסד הנתונים.
בוחרים באפשרות Firestore in Native Mode כמצב הפעולה, שתומך בפעולות Core ו-Pipeline.
בוחרים מיקום למסד הנתונים.
צריך לבחור מצב התחלה ל-Cloud Firestore Security Rules:
- מצב בדיקה
מתאים לתחילת העבודה עם ספריות הלקוח לנייד ולאינטרנט, אבל מאפשר לכל אחד לקרוא את הנתונים שלכם ולשכתב אותם. אחרי הבדיקה, חשוב לעיין בקטע אבטחת הנתונים.
כדי להתחיל להשתמש ב-SDK לאינטרנט, לפלטפורמות של Apple או ל-Android, בוחרים במצב בדיקה.
- מצב ייצור
דוחה את כל פעולות הקריאה והכתיבה מלקוחות בנייד ובאינטרנט. שרתי האפליקציות המאומתים (Node.js, Python, Java) עדיין יכולים לגשת למסד הנתונים.
הקבוצה הראשונית של Cloud Firestore Security Rules תחול על מסד הנתונים שמוגדר כברירת מחדל ב-Cloud Firestore. אם יוצרים כמה מסדי נתונים לפרויקט, אפשר לפרוס את Cloud Firestore Security Rules לכל מסד נתונים.
לוחצים על יצירה.
כשמפעילים את Cloud Firestore, ה-API מופעל גם ב-Cloud API Manager.
הגדרת סביבת הפיתוח
מוסיפים לאפליקציה את התלויות וספריות הלקוח הנדרשות.
Node.js
-
מוסיפים את ה-SDK של Firebase לאדמינים לאפליקציה:
npm install firebase-admin --save
- כדי להפעיל את Cloud Firestore עם פרטי הכניסה המתאימים בסביבה שלכם, צריך לפעול לפי ההוראות הבאות.
Python
- מוסיפים את ה-SDK של Firebase לאדמינים לאפליקציית Python:
pip install --upgrade firebase-admin
- כדי להפעיל את Cloud Firestore עם פרטי הכניסה המתאימים בסביבה שלכם, צריך לפעול לפי ההוראות הבאות.
Java
- מוסיפים את ה-SDK של Firebase לאדמינים לאפליקציה:
-
שימוש ב-Gradle:
implementation 'com.google.firebase:firebase-admin:9.11.0'
-
שימוש ב-Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.11.0</version> </dependency>
-
שימוש ב-Gradle:
- כדי להפעיל את Cloud Firestore עם פרטי הכניסה המתאימים בסביבה שלכם, צריך לפעול לפי ההוראות הבאות.
מפעילים את Cloud Firestore
מאתחלים מכונה של Cloud Firestore:
Node.js
ה-SDK של Cloud Firestore מאותחל בדרכים שונות בהתאם לסביבה שלכם. אלה השיטות הכי נפוצות. למידע נוסף, קראו את המאמר הפעלת ה-SDK לאדמינים.-
הפעלה ב-Cloud Functions
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp(); const db = getFirestore();
-
הפעלה ב-Google Cloud
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
initializeApp({ credential: applicationDefault() }); const db = getFirestore();
-
הפעלה בשרת שלכם
כדי להשתמש ב-SDK של Firebase לאדמינים בשרת שלכם (או בכל סביבת Node.js אחרת), אתם צריכים להשתמש בחשבון שירות. במסוף Google Cloud, נכנסים לדף IAM & admin > Service accounts. יוצרים מפתח פרטי חדש ושומרים את קובץ ה-JSON. לאחר מכן, משתמשים בקובץ כדי להפעיל את ה-SDK:
const { initializeApp, applicationDefault, cert } = require('firebase-admin/app'); const { getFirestore, Timestamp, FieldValue, Filter } = require('firebase-admin/firestore');
const serviceAccount = require('./path/to/serviceAccountKey.json'); initializeApp({ credential: cert(serviceAccount) }); const db = getFirestore();
Python
ה-SDK של Cloud Firestore מאותחל בדרכים שונות בהתאם לסביבה שלכם. אלה השיטות הכי נפוצות. למידע נוסף, קראו את המאמר הפעלת ה-SDK לאדמינים.import firebase_admin from firebase_admin import firestore # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore.client()
אפשר גם להשתמש בפרטי כניסה קיימים שמוגדרים כברירת מחדל באפליקציה כדי להפעיל את ה-SDK.
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore.client()
כדי להשתמש ב-SDK של Firebase לאדמינים בשרת שלכם, אתם צריכים להשתמש בחשבון שירות.
נכנסים לדף IAM & admin > Service accounts במסוף Google Cloud. יוצרים מפתח פרטי חדש ושומרים את קובץ ה-JSON. לאחר מכן, משתמשים בקובץ כדי להפעיל את ה-SDK:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore.client()
Java
ה-SDK של Cloud Firestore מאותחל בדרכים שונות בהתאם לסביבה שלכם. אלה השיטות הכי נפוצות. למידע נוסף, קראו את המאמר הפעלת ה-SDK לאדמינים.import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use the application default credentials GoogleCredentials credentials = GoogleCredentials.getApplicationDefault(); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .setProjectId(projectId) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
כדי להשתמש ב-SDK של Firebase לאדמינים בשרת שלכם, אתם צריכים להשתמש בחשבון שירות.
נכנסים לדף IAM & admin > Service accounts במסוף Google Cloud. יוצרים מפתח פרטי חדש ושומרים את קובץ ה-JSON. לאחר מכן, משתמשים בקובץ כדי להפעיל את ה-SDK:
import com.google.auth.oauth2.GoogleCredentials; import com.google.cloud.firestore.Firestore; import com.google.firebase.FirebaseApp; import com.google.firebase.FirebaseOptions; // Use a service account InputStream serviceAccount = new FileInputStream("path/to/serviceAccount.json"); GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount); FirebaseOptions options = new FirebaseOptions.Builder() .setCredentials(credentials) .build(); FirebaseApp.initializeApp(options); Firestore db = FirestoreClient.getFirestore();
הוספת נתונים באמצעות פעולות ליבה
כדי לבחון את פעולות הליבה ופעולות הצינור לשליחת שאילתות על נתונים, הוסיפו נתונים למסד הנתונים באמצעות פעולות הליבה.
Cloud Firestore מאחסן נתונים במסמכים, שמאוחסנים באוספים. Cloud Firestore יוצר אוספים ומסמכים באופן משתמע בפעם הראשונה שמוסיפים נתונים למסמך. אין צורך ליצור אוספים או מסמכים באופן מפורש.
יוצרים אוסף חדש ומסמך באמצעות הקוד לדוגמה הבא.
Node.js
Java
Python
קריאת נתונים באמצעות פעולות ליבה
כדי לוודא במהירות שהוספתם נתונים ל-Cloud Firestore, אתם יכולים להשתמש בכלי להצגת נתונים במסוף Firebase.
אפשר גם להשתמש ב-method "get" כדי לאחזר את כל האוסף.
Node.js
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Java
קריאת נתונים באמצעות פעולות בצינור עיבוד נתונים
עכשיו אתם יכולים להשוות בין חוויית השאילתות ב-Pipeline לבין חוויית השאילתות ב-Core.
Node.js
const readDataPipeline = db.pipeline() .collection("users"); // Execute the pipeline and handle the result try { const querySnapshot = await readDataPipeline.execute(); querySnapshot.results.forEach((result) => { console.log(`${result.id} => ${result.data()}`); }); } catch (error) { console.error("Error getting documents: ", error); }
Python
pipeline = client.pipeline().collection("users") for result in pipeline.execute(): print(f"{result.id} => {result.data()}")
Java
Pipeline pipeline = firestore.pipeline().collection("users"); ApiFuture<Pipeline.Snapshot> future = pipeline.execute(); for (com.google.cloud.firestore.PipelineResult result : future.get().getResults()) { System.out.println(result.getId() + " => " + result.getData()); } // or, asynchronously pipeline.execute( new ApiStreamObserver<com.google.cloud.firestore.PipelineResult>() { @Override public void onNext(com.google.cloud.firestore.PipelineResult result) { System.out.println(result.getId() + " => " + result.getData()); } @Override public void onError(Throwable t) { System.err.println(t); } @Override public void onCompleted() { System.out.println("done"); } });
השלבים הבאים
כדי להעמיק את הידע שלכם על פעולות ליבה ופעולות צינור עיבוד נתונים, אתם יכולים לקרוא את הנושאים הבאים:
- חשוב להכיר את ההבדלים בין הפעולות של Core ו-Pipeline
- מידע נוסף על שאילתות עם פעולות ליבה
- מידע נוסף על שאילתות באמצעות פעולות בצינור עיבוד נתונים