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