يوضّح لك دليل البدء السريع هذا كيفية إعداد Cloud Firestore وإضافة البيانات، ثم استخدام عمليات Core أو عمليات Pipeline لإرسال طلبات بحث عن البيانات التي أضفتها للتو في وحدة تحكّم Firebase باستخدام مكتبات برامج الخادم لكل من Java وNode.js وPython.
استخدِم مكتبات العملاء هذه لإعداد بيئات خوادم مميّزة تتيح الوصول الكامل إلى قاعدة بياناتك.
إنشاء قاعدة بيانات Cloud Firestore
إذا لم يسبق لك إنشاء مشروع على Firebase، يمكنك إنشاء مشروع باتّباع الخطوات التالية: في وحدة تحكُّم Firebase، انقر على إضافة مشروع، ثم اتّبِع التعليمات الظاهرة على الشاشة لإنشاء مشروع على Firebase أو لإضافة خدمات Firebase إلى مشروع حالي على Google Cloud.
في اللوحة اليمنى، انتقِل إلى قواعد البيانات ومساحة التخزين > Firestore.
انقر على إنشاء قاعدة بيانات.
اختَر Enterprise لوضع قاعدة البيانات.
اختَر Firestore in Native Mode لوضع التشغيل الذي يتيح عمليات Core وPipeline.
اختَر موقعًا جغرافيًا لقاعدة بياناتك.
اختَر وضع البدء لجهاز Cloud Firestore Security Rules:
- الوضع التجريبي
هذه القواعد مناسبة لبدء استخدام مكتبات برامج الويب والأجهزة الجوّالة، ولكنّها تسمح لأي مستخدم بقراءة بياناتك واستبدالها. بعد الاختبار، احرص على مراجعة قسم تأمين بياناتك.
للبدء باستخدام الويب أو منصات Apple أو حزمة تطوير البرامج (SDK) لنظام التشغيل Android، اختَر وضع الاختبار.
- وضع الإنتاج
يتم رفض جميع عمليات القراءة والكتابة من برامج الأجهزة الجوّالة والويب. سيظل بإمكان خوادم التطبيقات التي تمت مصادقتها (Node.js وPython وJava) الوصول إلى قاعدة بياناتك.
سيتم تطبيق المجموعة الأولية من Cloud Firestore Security Rules على قاعدة بيانات Cloud Firestore التلقائية. إذا أنشأت قواعد بيانات متعددة لمشروعك، يمكنك نشر Cloud Firestore Security Rules لكل قاعدة بيانات.
انقر على إنشاء.
عند تفعيل Cloud Firestore، يتم أيضًا تفعيل واجهة برمجة التطبيقات في 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. أنشِئ مفتاحًا خاصًا جديدًا واحفظ ملف 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 على خادمك الخاص، استخدِم حساب خدمة.
انتقِل إلى إدارة الهوية وإمكانية الوصول والمشرف > حسابات الخدمة في وحدة تحكّم 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 على خادمك الخاص، استخدِم حساب خدمة.
انتقِل إلى إدارة الهوية وإمكانية الوصول والمشرف > حسابات الخدمة في وحدة تحكّم 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();
إضافة البيانات باستخدام عمليات Core
لاستكشاف عمليات Core وPipeline للاستعلام عن البيانات، أضِف بيانات إلى قاعدة بياناتك باستخدام عمليات Core.
يخزّن Cloud Firestore البيانات في مستندات يتم تخزينها في مجموعات. تنشئ Cloud Firestore المجموعات والمستندات ضمنيًا في المرة الأولى التي تضيف فيها بيانات إلى المستند. ليس عليك إنشاء مجموعات أو مستندات بشكل صريح.
أنشئ مجموعة ومستندًا جديدَين باستخدام نموذج الرمز البرمجي التالي.
Node.js
Java
Python
قراءة البيانات باستخدام عمليات Core
استخدِم عارض البيانات في وحدة تحكُّم Firebase للتحقّق بسرعة من إضافة البيانات إلى Cloud Firestore.
يمكنك أيضًا استخدام طريقة "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
يمكنك الآن مقارنة تجربة طلب البحث في 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 من خلال المواضيع التالية:
- تأكَّد من أنّك على دراية بالاختلافات بين عمليات Core وPipeline
- مزيد من المعلومات عن تنفيذ طلبات البحث باستخدام العمليات الأساسية
- مزيد من المعلومات حول الاستعلام باستخدام عمليات المسار