يوضّح لك هذا الدليل السريع كيفية إعداد Cloud Firestore وإضافة البيانات، ثم استخدام العمليات الأساسية أو عمليات خط أنابيب البيانات للاستعلام عن البيانات التي أضفتها للتو في وحدة تحكّم Firebase باستخدام مكتبات برامج الخادم للغات Java وNode.js وPython.
استخدِم مكتبات برامج الخادم هذه لإعداد بيئات خادم مميزة تتيح الوصول الكامل إلى قاعدة بياناتك.
.إنشاء قاعدة بيانات Cloud Firestore
إذا لم يسبق لك ذلك، أنشئ مشروعًا على Firebase: في وحدة تحكّم Firebase، انقر على إضافة مشروع، ثم اتّبِع التعليمات الظاهرة على الشاشة لإنشاء مشروع على Firebase أو لإضافة خدمات Firebase إلى مشروع حالي Google Cloud.
في اللوحة اليمنى، انتقِل إلى قواعد البيانات والتخزين > Firestore.
انقر على إنشاء قاعدة بيانات.
اختَر مؤسسة لوضع قاعدة البيانات.
اختَر Firestore في الوضع الأصلي لوضع العملية، الذي يتيح العمليات الأساسية وعمليات خط أنابيب البيانات.
اختَر موقعًا لقاعدة بياناتك.
اختَر وضع بدء لـ Cloud Firestore Security Rules:
- وضع الاختبار
هذا الوضع مناسب للبدء في استخدام مكتبات برامج الخادم للأجهزة الجوّالة والويب، ولكنّه يسمح لأي مستخدِم بقراءة بياناتك والكتابة فوقها. بعد الاختبار، احرص على مراجعة قسم تأمين بياناتك.
للبدء في استخدام حزمة تطوير البرامج (SDK) للويب أو منصات Apple أو Android، اختَر وضع الاختبار.
- وضع الإنتاج
يؤدي هذا الوضع إلى منع جميع عمليات القراءة والكتابة من برامج الخادم للأجهزة الجوّالة والويب. ومع ذلك، يمكن لخوادم التطبيقات التي تمّت مصادقتها (Node.js وPython وJava) الوصول إلى قاعدة بياناتك.
ستنطبق المجموعة الأولية من Cloud Firestore Security Rules على قاعدة بيانات Cloud Firestore التلقائية. إذا أنشأت قواعد بيانات متعدّدة لمشروعك ، يمكنك نشر Cloud Firestore Security Rules لكل قاعدة بيانات.
انقر على إنشاء.
عند تفعيل Cloud Firestore، يتم أيضًا تفعيل واجهة برمجة التطبيقات في Cloud API Manager.
إعداد بيئة التطوير
أضِف التبعيات ومكتبات برامج الخادم المطلوبة إلى تطبيقك.
Node.js
-
أضِف حزمة Firebase Admin SDK إلى تطبيقك:
npm install firebase-admin --save
- اتّبِع التعليمات أدناه لإعداد Cloud Firestore باستخدام بيانات الاعتماد المناسبة في بيئتك.
Python
- أضِف حزمة Firebase Admin SDK إلى تطبيق Python:
pip install --upgrade firebase-admin
- اتّبِع التعليمات أدناه لإعداد Cloud Firestore باستخدام بيانات الاعتماد المناسبة في بيئتك.
Java
- أضِف حزمة Firebase Admin SDK إلى تطبيقك:
-
باستخدام Gradle:
implementation 'com.google.firebase:firebase-admin:9.9.0'
-
باستخدام Maven:
<dependency> <groupId>com.google.firebase</groupId> <artifactId>firebase-admin</artifactId> <version>9.9.0</version> </dependency>
-
باستخدام Gradle:
- اتّبِع التعليمات أدناه لإعداد Cloud Firestore باستخدام بيانات الاعتماد المناسبة في بيئتك.
إعداد Cloud Firestore
ابدأ مثيلاً من Cloud Firestore:
Node.js
يتم إعداد حزمة Cloud Firestore SDK بطرق مختلفة حسب بيئتك. في ما يلي الطرق الأكثر شيوعًا. للحصول على مرجع كامل، يُرجى الاطّلاع على مقالة إعداد حزمة Admin 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();
-
الإعداد على الخادم الخاص بك
لاستخدام حزمة Firebase Admin SDK على الخادم الخاص بك (أو أي بيئة Node.js أخرى)، استخدِم حساب خدمة. انتقِل إلى إدارة الهوية وإمكانية الوصول والمشرف > حسابات الخدمة في Google Cloud Console. أنشئ مفتاحًا خاصًا جديدًا واحفظ ملف 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
يتم إعداد حزمة Cloud Firestore SDK بطرق مختلفة حسب بيئتك. في ما يلي الطرق الأكثر شيوعًا. للحصول على مرجع كامل، يُرجى الاطّلاع على مقالة إعداد حزمة مدير 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()
لاستخدام حزمة Firebase Admin SDK على الخادم الخاص بك، استخدِم حساب خدمة.
انتقِل إلى إدارة الهوية وإمكانية الوصول والمشرف > حسابات الخدمة في Google Cloud Console. أنشئ مفتاحًا خاصًا جديدًا واحفظ ملف 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
يتم إعداد حزمة Cloud Firestore SDK بطرق مختلفة حسب بيئتك. في ما يلي الطرق الأكثر شيوعًا. للحصول على مرجع كامل، يُرجى الاطّلاع على مقالة إعداد حزمة Admin 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();
لاستخدام حزمة Firebase Admin SDK على الخادم الخاص بك، استخدِم حساب خدمة.
انتقِل إلى إدارة الهوية وإمكانية الوصول والمشرف > حسابات الخدمة في Google Cloud Console. أنشئ مفتاحًا خاصًا جديدًا واحفظ ملف 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
قراءة البيانات باستخدام العمليات الأساسية
استخدِم عارض البيانات في وحدة تحكّم 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
قراءة البيانات باستخدام عمليات خط أنابيب البيانات
يمكنك الآن مقارنة تجربة الاستعلام عن خط أنابيب البيانات بتجربة الاستعلام الأساسي.
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"); } });
الخطوات التالية
تعمَّق في معرفتك بالعمليات الأساسية وعمليات خط أنابيب البيانات من خلال المواضيع التالية:
- تأكَّد من أنّك على دراية بالاختلافات بين العمليات الأساسية وعمليات خط أنابيب البيانات
- مزيد من المعلومات عن الاستعلام باستخدام العمليات الأساسية
- مزيد من المعلومات عن الاستعلام باستخدام عمليات خط أنابيب البيانات.