يوضّح لك دليل البدء السريع هذا كيفية إعداد Firestore Enterprise edition وإضافة البيانات، ثم عرض البيانات التي أضفتها للتو في وحدة تحكّم Firebase باستخدام مكتبات برامج الخادم لـ C# وGo وJava وNode.js وPHP وPython وRuby.
استخدِم مكتبات العملاء هذه لإعداد بيئات خوادم مميّزة تتيح الوصول الكامل إلى قاعدة بياناتك.
إنشاء قاعدة بيانات Cloud Firestore
إذا لم يسبق لك إنشاء مشروع على Firebase، يمكنك إنشاء مشروع باتّباع الخطوات التالية: في وحدة تحكُّم Firebase، انقر على إضافة مشروع، ثم اتّبِع التعليمات الظاهرة على الشاشة لإنشاء مشروع على Firebase أو لإضافة خدمات Firebase إلى مشروع حالي على Google Cloud.
في اللوحة اليمنى، انتقِل إلى قواعد البيانات ومساحة التخزين > Firestore.
انقر على إنشاء قاعدة بيانات.
اختَر موقعًا جغرافيًا لقاعدة بياناتك.
إذا لم تتمكّن من اختيار موقع جغرافي، يعني ذلك أنّه سبق أن تم ضبط "الموقع الجغرافي لموارد Google Cloud التلقائية" لمشروعك. تعتمد بعض موارد مشروعك (مثل مثيل Cloud Firestore التلقائي) على موقع جغرافي مشترك، ويمكن ضبط موقعها الجغرافي إما أثناء إنشاء المشروع أو عند إعداد خدمة أخرى تعتمد على هذا الموقع الجغرافي.
اختَر وضع البدء لجهاز Cloud Firestore Security Rules:
- الوضع التجريبي
هذه القواعد مناسبة لبدء استخدام مكتبات برامج الويب والأجهزة الجوّالة، ولكنّها تسمح لأي مستخدم بقراءة بياناتك واستبدالها. بعد الاختبار، احرص على مراجعة قسم تأمين بياناتك.
للبدء باستخدام الويب أو منصات Apple أو حزمة تطوير البرامج (SDK) لنظام التشغيل Android، اختَر وضع الاختبار.
- وضع الإنتاج
يتم رفض جميع عمليات القراءة والكتابة من برامج الأجهزة الجوّالة والويب. سيظل بإمكان خوادم التطبيقات التي تمت مصادقتها (C# أو Go أو Java أو Node.js أو PHP أو Python أو Ruby) الوصول إلى قاعدة بياناتك.
لبدء استخدام مكتبة برامج الخادم بلغة C# أو Go أو Java أو Node.js أو PHP أو Python أو Ruby، اختَر وضع الإنتاج.
سيتم تطبيق المجموعة الأولية من Cloud Firestore Security Rules على قاعدة بيانات Cloud Firestore التلقائية. إذا أنشأت قواعد بيانات متعددة لمشروعك، يمكنك نشر Cloud Firestore Security Rules لكل قاعدة بيانات.
انقر على إنشاء.
عند تفعيل Cloud Firestore، يتم أيضًا تفعيل واجهة برمجة التطبيقات في Cloud API Manager.
إعداد بيئة التطوير
أضِف التبعيات ومكتبات البرامج المطلوبة إلى تطبيقك.
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 باستخدام بيانات الاعتماد المناسبة في بيئتك.
Python
- أضِف حزمة تطوير البرامج (SDK) لإدارة Firebase إلى تطبيق Python:
pip install --upgrade firebase-admin
- اتّبِع التعليمات أدناه لإعداد Cloud Firestore باستخدام بيانات الاعتماد المناسبة في بيئتك.
Node.js
-
أضِف حزمة تطوير البرامج (SDK) الخاصة بمدير Firebase إلى تطبيقك:
npm install firebase-admin --save
- اتّبِع التعليمات أدناه لإعداد Cloud Firestore باستخدام بيانات الاعتماد المناسبة في بيئتك.
متابعة
- أضِف حزمة SDK لإدارة Firebase إلى تطبيق Go:
go get firebase.google.com/go
- اتّبِع التعليمات أدناه لإعداد Cloud Firestore باستخدام بيانات الاعتماد المناسبة في بيئتك.
PHP
-
تستخدم مكتبات برامج خادم Cloud Firestore (Java وNode.js وPython وGo وPHP وC# وRuby)
بيانات الاعتماد التلقائية لتطبيق Google
للمصادقة.
-
للمصادقة من بيئة التطوير، اضبط متغيّر البيئة
GOOGLE_APPLICATION_CREDENTIALSللإشارة إلى ملف مفتاح حساب خدمة JSON. يمكنك إنشاء ملف مفتاح في صفحة "بيانات الاعتماد" في وحدة تحكّم واجهة برمجة التطبيقات.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json" - في بيئة التشغيل الفعلي، لن تحتاج إلى المصادقة إذا كنت تشغّل تطبيقك على App Engine أو Compute Engine، باستخدام المشروع نفسه الذي تستخدمه في Cloud Firestore. وإلا، أعِدّ حساب خدمة.
-
للمصادقة من بيئة التطوير، اضبط متغيّر البيئة
- ثبِّت إضافة gRPC للغة PHP وفعِّلها، وستحتاج إليها لاستخدام مكتبة البرامج.
-
أضِف مكتبة Cloud Firestore PHP إلى تطبيقك:
composer require google/cloud-firestore
لغة Ruby
-
تستخدم مكتبات برامج خادم Cloud Firestore (Java وNode.js وPython وGo وPHP وC# وRuby)
بيانات الاعتماد التلقائية لتطبيق Google
للمصادقة.
-
للمصادقة من بيئة التطوير، اضبط متغيّر البيئة
GOOGLE_APPLICATION_CREDENTIALSللإشارة إلى ملف مفتاح حساب خدمة JSON. يمكنك إنشاء ملف مفتاح في صفحة "بيانات الاعتماد" في وحدة تحكّم واجهة برمجة التطبيقات.export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/keyfile.json"
- في بيئة التشغيل الفعلي، لن تحتاج إلى المصادقة إذا كنت تشغّل تطبيقك على App Engine أو Compute Engine، باستخدام المشروع نفسه الذي تستخدمه في Cloud Firestore. وإلا، أعِدّ حساب خدمة.
-
للمصادقة من بيئة التطوير، اضبط متغيّر البيئة
-
أضِف مكتبة Cloud Firestore Ruby إلى تطبيقك في
Gemfile:gem "google-cloud-firestore"
-
ثبِّت التبعيات من
Gemfileباستخدام:bundle install
(اختياري) إنشاء نموذج أوّلي واختباره باستخدام Firebase Local Emulator Suite
بالنسبة إلى مطوّري التطبيقات المتوافقة مع الأجهزة الجوّالة، قبل الحديث عن كيفية كتابة تطبيقك للبيانات وقراءتها من Cloud Firestore، دعنا نقدّم مجموعة من الأدوات التي يمكنك استخدامها لإنشاء نماذج أوّلية واختبار وظائف Cloud Firestore: Firebase Local Emulator Suite. إذا كنت تجرّب نماذج بيانات مختلفة أو تحسّن قواعد الأمان أو تعمل على العثور على الطريقة الأكثر فعالية من حيث التكلفة للتفاعل مع الخلفية، قد يكون من المفيد العمل محليًا بدون نشر الخدمات المباشرة.
يُعدّ محاكي Cloud Firestore جزءًا من Local Emulator Suite، وهو يتيح لتطبيقك التفاعل مع محتوى قاعدة البيانات التي تتم محاكاتها وإعداداتها، بالإضافة إلى موارد المشروع التي تتم محاكاتها (الدوال وقواعد البيانات الأخرى وقواعد الأمان) بشكل اختياري.
يتطلّب استخدام محاكي Cloud Firestore بضع خطوات فقط:
- إضافة سطر من الرموز إلى إعدادات اختبار تطبيقك للاتصال بالمحاكي
- من جذر دليل مشروعك على جهاز المستخدم، نفِّذ الأمر
firebase emulators:start. - إجراء طلبات من الرمز البرمجي الأوّلي لتطبيقك باستخدام حزمة تطوير برامج (SDK) لمنصة Cloud Firestore كالمعتاد
يتوفّر دليل تفصيلي يتضمّن Cloud Firestore وCloud Functions. ننصحك أيضًا بالاطّلاع على مقدمة حول Local Emulator Suite.
إعداد Cloud Firestore
ابدأ إعداد مثيل من Cloud Firestore:
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();
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()
Python
تتم تهيئة حزمة تطوير البرامج (SDK) لـ "Cloud Firestore" بطرق مختلفة حسب بيئتك. في ما يلي الطرق الأكثر شيوعًا. للحصول على مرجع كامل، يُرجى الاطّلاع على إعداد مدير SDK.import firebase_admin from firebase_admin import firestore_async # Application Default credentials are automatically created. app = firebase_admin.initialize_app() db = firestore_async.client()
يمكن أيضًا استخدام بيانات اعتماد تلقائية حالية للتطبيق لإعداد حزمة تطوير البرامج (SDK).
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore_async # Use the application default credentials. cred = credentials.ApplicationDefault() firebase_admin.initialize_app(cred) db = firestore_async.client()
لاستخدام مدير SDK في Firebase على خادمك الخاص، استخدِم حساب خدمة.
انتقِل إلى إدارة الهوية وإمكانية الوصول والمشرف > حسابات الخدمة في وحدة تحكّم Google Cloud. أنشئ مفتاحًا خاصًا جديدًا واحفظ ملف JSON. بعد ذلك، استخدِم الملف لإعداد حزمة SDK:
import firebase_admin from firebase_admin import credentials from firebase_admin import firestore_async # Use a service account. cred = credentials.Certificate('path/to/serviceAccount.json') app = firebase_admin.initialize_app(cred) db = firestore_async.client()
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();
متابعة
تتم تهيئة حزمة تطوير البرامج (SDK) لـ "Cloud Firestore" بطرق مختلفة حسب بيئتك. في ما يلي الطرق الأكثر شيوعًا. للحصول على مرجع كامل، يُرجى الاطّلاع على إعداد مدير SDK.import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use the application default credentials ctx := context.Background() conf := &firebase.Config{ProjectID: projectID} app, err := firebase.NewApp(ctx, conf) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
لاستخدام مدير SDK في Firebase على خادمك الخاص، استخدِم حساب خدمة.
انتقِل إلى إدارة الهوية وإمكانية الوصول والمشرف > حسابات الخدمة في وحدة تحكّم Google Cloud. أنشئ مفتاحًا خاصًا جديدًا واحفظ ملف JSON. بعد ذلك، استخدِم الملف لإعداد حزمة SDK:
import ( "log" firebase "firebase.google.com/go" "google.golang.org/api/option" ) // Use a service account ctx := context.Background() sa := option.WithCredentialsFile("path/to/serviceAccount.json") app, err := firebase.NewApp(ctx, nil, sa) if err != nil { log.Fatalln(err) } client, err := app.Firestore(ctx) if err != nil { log.Fatalln(err) } defer client.Close()
PHP
PHP
للمصادقة على Cloud Firestore، عليك إعداد "بيانات الاعتماد التلقائية للتطبيق". لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إعداد المصادقة لبيئة تطوير محلية.
#C
C#
للمصادقة على Cloud Firestore، عليك إعداد "بيانات الاعتماد التلقائية للتطبيق". لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إعداد المصادقة لبيئة تطوير محلية.
لغة Ruby
إضافة بيانات
تخزّن Cloud Firestore البيانات في "المستندات" التي يتم تخزينها في "المجموعات". تنشئ Cloud Firestore المجموعات والمستندات ضمنيًا في المرة الأولى التي تضيف فيها بيانات إلى المستند. ليس عليك إنشاء مجموعات أو مستندات بشكل صريح.
أنشئ مجموعة ومستندًا جديدَين باستخدام نموذج الرمز البرمجي التالي.
Java
Python
Python
Node.js
متابعة
PHP
PHP
للمصادقة على Cloud Firestore، عليك إعداد "بيانات الاعتماد التلقائية للتطبيق". لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إعداد المصادقة لبيئة تطوير محلية.
#C
لغة Ruby
أضِف الآن مستندًا آخر إلى مجموعة "users". لاحظ أن هذا المستند يتضمن زوجًا من المفتاح والقيمة (الاسم الأوسط) لا يظهر في المستند الأول. يمكن أن تحتوي المستندات في مجموعة على مجموعات مختلفة من المعلومات.
Java
Python
Python
Node.js
متابعة
PHP
PHP
للمصادقة على Cloud Firestore، عليك إعداد "بيانات الاعتماد التلقائية للتطبيق". لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إعداد المصادقة لبيئة تطوير محلية.
#C
لغة Ruby
قراءة البيانات
استخدِم عارض البيانات في وحدة تحكُّم Firebase للتحقّق بسرعة من إضافة البيانات إلى Cloud Firestore.
يمكنك أيضًا استخدام طريقة "get" لاسترداد المجموعة بأكملها.
Java
Python
users_ref = db.collection("users") docs = users_ref.stream() for doc in docs: print(f"{doc.id} => {doc.to_dict()}")
Python
Node.js
متابعة
PHP
PHP
للمصادقة على Cloud Firestore، عليك إعداد "بيانات الاعتماد التلقائية للتطبيق". لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إعداد المصادقة لبيئة تطوير محلية.
#C
لغة Ruby
الخطوات التالية
يمكنك تعميق معرفتك من خلال المواضيع التالية:
- نموذج البيانات: يمكنك الاطّلاع على مزيد من المعلومات حول كيفية تنظيم البيانات في Cloud Firestore، بما في ذلك البيانات الهرمية والمجموعات الفرعية.
- إضافة البيانات: مزيد من المعلومات حول إنشاء البيانات وتعديلها في Cloud Firestore
- الحصول على البيانات: تعرَّف على مزيد من المعلومات حول كيفية استرداد البيانات.
- إجراء طلبات بحث بسيطة ومركّبة: تعرَّف على كيفية إجراء طلبات بحث بسيطة ومركّبة.
- ترتيب طلبات البحث وحصرها تعرَّف على كيفية ترتيب البيانات التي تعرضها طلبات البحث وحصرها.