في هذا الدليل السريع، ستتعرّف على كيفية إنشاء Firebase Data Connect في تطبيقك باستخدام مثيل SQL مخصّص للإنتاج.
في وحدة تحكّم Firebase، عليك إجراء ما يلي:
- أضِف Firebase Data Connect إلى مشروعك على Firebase.
- أنشئ مخططًا لتطبيق باستخدام ميزة إنشاء المخططات المستندة إلى الذكاء الاصطناعي في وحدة تحكّم Firebase، ثمّ نفِّذه.
- توفير مثيل Cloud SQL لتطبيقك
- باستخدام "Gemini في Firebase"، يمكنك ملء قاعدة البيانات ببيانات نموذجية.
- يمكنك إنشاء طلبات وعمليات تغيير، مع إنشاء عمليات بمساعدة الذكاء الاصطناعي، ويمكنك نشرها واستخدامها لتطوير رمز العميل محليًا.
بعد ذلك، في بيئة التطوير المحلية، عليك إجراء ما يلي:
- إعداد أدوات التطوير، بما في ذلك إضافة Visual Studio Code، للعمل مع مثيل الإنتاج
- يمكنك مزامنة بيئتك المحلية مع مواد العرض التي أنشأتها في وحدة التحكّم.
- إنشاء حِزم SDK ذات أنواع محددة واستخدامها في تطبيقك
مسار وحدة التحكّم: استخدام ميزة "المساعدة المستندة إلى الذكاء الاصطناعي" لتصميم المخطط، ثم نشره في قاعدة البيانات
- أنشئ مشروعًا على Firebase، إذا لم يسبق لك ذلك.
- في Firebaseوحدة التحكّم، انقر على إضافة مشروع، ثم اتّبِع التعليمات الظاهرة على الشاشة.
- انتقِل إلى القسم Data Connect في وحدة تحكّم Firebase.
- انقر على زر بدء استخدام Gemini.
- في لوحة سير العمل أداة إنشاء المخطط التي تظهر، صف تطبيقًا كي يساعدك Gemini في إنشاء مخطط GraphQL.
- راجِع مخطط GraphQL، ثم انقر على الترقية والنشر.
رقِّي مشروعك إلى خطة Blaze. يتيح لك ذلك إنشاء مثيل Cloud SQL لـ PostgreSQL.
اختَر إنشاء مثيل Cloud SQL جديد. في مربّع الحوار الذي يظهر، اختَر موقعًا جغرافيًا وتسمية لقاعدة بيانات Cloud SQL for PostgreSQL.
يتم نشر مخطط تطبيقك مع قاعدة بيانات PostgreSQL تتوافق مع هذا المخطط.
مسار وحدة التحكّم: استخدام ميزة "المساعدة المستندة إلى الذكاء الاصطناعي" لإنشاء عمليات لعملائك
بعد نشر المخطط، يمكنك اتّخاذ الخطوات الأولى لإتاحة الوصول إلى هذه البيانات من تطبيقات العميل من خلال إنشاء رابط للاستعلامات والتعديلات لنشره في الخلفية، ثم استدعائه من العملاء لاحقًا.
تتوفّر أدوات المساعدة المستندة إلى الذكاء الاصطناعي لمساعدتك.
عندما يُطلب منك ذلك، انقر على الزر إنشاء عمليات باستخدام Gemini.
بعد بضع لحظات، في لوحة سير العمل إنشاء العمليات التي تظهر، راجِع قائمة طلبات البحث وعمليات التعديل التي يقدّمها Gemini استنادًا إلى المخطط.
انقر على كل صف عملية لمراجعة رمز GraphQL الذي يحدّد تلك العملية. إذا لزم الأمر، استخدِم عنصر التحكّم الخاص بسلة المهملات لحذف العمليات التي لا تحتاج إليها.
لإضافة عمليات، انقر على الزر + إضافة. بعد ذلك:
قدِّم وصفًا لعمليتك بلغة طبيعية.
على سبيل المثال:
List all products
راجِع GraphQL الذي تم إنشاؤه.
إذا كانت العملية مقبولة، انقر على إدراج لإضافتها إلى قائمة العمليات.
واصِل إزالة العمليات وإضافتها إلى أن تصبح مجموعة العمليات مقبولة.
لنشر قائمة العمليات هذه كمجموعة موصلات يمكن استدعاؤها من العميل، اختَر اسم الموصل، ثم انقر على نشر.
مسار Console: استخدام Gemini في Firebase لإنشاء تغيير وتعبئة قاعدة البيانات
من خلال إكمال الخطوات السابقة، أنشأت Data Connect مخططًا يتألف من أنواع الكيانات ذات الصلة، ونشرته في مرحلة الإنتاج، ما يعني أنّه تم أيضًا إنشاء قاعدة بيانات PostgreSQL تتضمّن جداول مطابقة ونشرها.
لملء قاعدة البيانات، يمكنك استخدام Gemini في Firebase لمساعدتك في تحويل مدخلاتك باللغة الطبيعية إلى تعديل في GraphQL لتعديل أحد جداولك وطلب بحث لتأكيد تعديلاتك.
افتح علامة التبويب البيانات.
انقر على رمز ساعدني في كتابة GraphQL pen_spark وفي المربّع الذي يظهر، اكتب الإدخال.
على سبيل المثال:
Add data for three sample products to my app.
انقر على إنشاء. يتم عرض التغيير.
راجِع الناتج. إذا لزم الأمر، انقر على تعديل لتحسين الطلب، ثم انقر على إعادة إنشاء.
بعد ذلك، انقر على إدراج لإدراج التغيير في أداة تعديل البيانات.
انقر على تشغيل.
عند تنفيذ عملية التغيير، تتم كتابة البيانات في الجدول المناسب في قاعدة بيانات PostgreSQL. يمكنك إنشاء طلب بحث في وحدة التحكّم لعرض البيانات المخزّنة باتّباع الخطوات التالية:
كرِّر الخطوات السابقة باستخدام ساعدني في كتابة GraphQL pen_spark لإنشاء طلب بحث.
في المربّع الذي يظهر، اكتب الإدخال.
على سبيل المثال:
Query data for all sample products in my app.
انقر على إنشاء، ثم على تشغيل.
مسار التطوير المحلي: اختيار أدوات التطوير
بعد أن أصبحت لديك بيانات في قاعدة البيانات التي تم نشرها، وبعد أن نشرت موصّلاً، يمكنك مواصلة تطوير المخطط والموصّلات في بيئة التطوير المحلية.
أولاً، عليك إعداد بيئة محلية. توفّر لك Data Connect طريقتَين لتثبيت أدوات التطوير.
المسار المحلي: إعداد بيئة التطوير
أنشئ دليلاً جديدًا لمشروعك المحلي.
لإعداد Data Connect بيئة تطوير وبيئة تطوير متكاملة مستندة إلى المتصفّح وإنشاء حِزم SDK للعملاء، شغِّل الأمر التالي في الدليل الجديد الذي أنشأته.
curl -sL https://firebase.tools/init/dataconnect | editor=true bash
يحاول هذا النص البرمجي إجراء عملية التثبيت. توفر بيئة التطوير المتكاملة (IDE) المثبَّتة أدوات، بما في ذلك إضافات VS Code المجمَّعة مسبقًا، لمساعدتك في إدارة المخطط وتحديد طلبات البحث وعمليات التعديل التي سيتم استخدامها في تطبيقك، وإنشاء حِزم SDK ذات أنواع محددة بدقة.
يعمل النص البرمجي أيضًا على مزامنة مواد العرض التي أنشأتها في وحدة تحكّم Firebase مع الدليل المحلي، كما ينشئ حِزم SDK للعملاء لأي تطبيقات سجّلتها في مشروعك.
التدفق المحلي: إعداد مشروعك المحلي
لإعداد مشروعك المحلي، عليك تهيئة دليل المشروع. في نافذة بيئة التطوير المتكاملة (IDE)، انقر على رمز Firebase في اللوحة اليمنى لفتح واجهة مستخدم إضافة Data Connect VS Code:
انقر على الزر بدء المحاكيات.
المسار المحلي: العثور على المخطط والموصّل في البيئة المحلية
يؤدي خيار التثبيت التلقائي لنظام التشغيل macOS أو Linux الذي استخدمته لمزامنة مواد العرض مع مشروع حالي إلى حدوث ما يلي:- تتم مزامنة المخطّط الذي نشرته
- ابحث عن المخطط الخاص بك: يقع في دليل مشروعك على Firebase، في الملف
/dataconnect/schema/schema.gql
.
- ابحث عن المخطط الخاص بك: يقع في دليل مشروعك على Firebase، في الملف
- تتم مزامنة طلبات البحث وعمليات التعديل في الموصّل الذي نشرته
- ابحث عن أداة الربط: تقع العمليات في دليل مشروعك على Firebase، ضمن الدليل
/dataconnect/connector/
.
- ابحث عن أداة الربط: تقع العمليات في دليل مشروعك على Firebase، ضمن الدليل
المخطط المحلي: فهم المخطط
مثال على المخطط: فيلم
في Data Connect، يتم ربط حقول GraphQL بالأعمدة. من المحتمل أن يتضمّن النوع Movie
id
وtitle
وimageUrl
وgenre
.
يتعرّف Data Connect على نوعَي البيانات الأساسيَّين String
وUUID
.
# File `/dataconnect/schema/schema.gql`
# By default, a UUID id key will be created by default as primary key.
type Movie @table {
id: UUID! @default(expr: "uuidV4()")
title: String!
imageUrl: String!
genre: String
}
مثال على المخطط 1:1: MovieMetadata
باستخدام الأفلام، يمكنك تصميم بيانات وصفية للأفلام.
على سبيل المثال، في schema.gql
، يمكنك إضافة المقتطف التالي أو رمز المراجعة الذي تم إنشاؤه بواسطة Gemini.
# Movie - MovieMetadata is a one-to-one relationship
type MovieMetadata @table {
# This time, we omit adding a primary key because
# you can rely on Data Connect to manage it.
# @unique indicates a 1-1 relationship
movie: Movie! @unique
# movieId: UUID <- this is created by the above reference
rating: Float
releaseYear: Int
description: String
}
لاحظ أنّ الحقل movie
يتم ربطه بنوع Movie
.
تدرك Data Connect أنّ هذه علاقة بين Movie
وMovieMetadata
، وستتولّى إدارة هذه العلاقة نيابةً عنك.
مزيد من المعلومات عن مخططات Data Connect في المستندات
المسار المحلي: إضافة المزيد من البيانات إلى جداولك
في لوحة محرّر بيئة التطوير المتكاملة (IDE)، يمكنك الاطّلاع على أزرار CodeLens تظهر فوق أنواع GraphQL في /dataconnect/schema/schema.gql
. وكما فعلت في وحدة التحكّم، يمكنك إنشاء عملية تغيير لإضافة بيانات إلى قاعدة بيانات الإنتاج.
لإضافة بيانات إلى جدول، اتّبِع الخطوات التالية:
- في
schema.gql
، انقر على الزر إضافة بيانات أعلى بيان الإفصاح الخاص بأحد أنواع البيانات (مثلMovie
أوProduct
أوAccount
، حسب طبيعة تطبيقك).
- يتمّ إضافة ملف جديد،
<type>_insert.qgl
، إلى دليل العمل، مثلMovie_insert.gql
أوProduct_insert.gql
. إدخال البيانات بشكل ثابت في الحقول الخاصة بهذا النوع - انقر على الزر تشغيل (في مرحلة الإنتاج).
- كرِّر الخطوات السابقة لإضافة سجلّ إلى جداول أخرى.
للتأكّد بسرعة من أنّه تمّت إضافة البيانات، اتّبِع الخطوات التالية:
- بالعودة إلى
schema.gql
، انقر على الزر قراءة البيانات أعلى تعريف النوع. - في ملف
<type>_read.gql
الناتج، مثلProduct_read.gql
، انقر على الزر تشغيل (الإنتاج) لتنفيذ طلب البحث.
مزيد من المعلومات حول عمليات تغيير Data Connect في المستندات
المسار المحلي: إنشاء حِزم SDK
تتم مزامنة عمليات المخطط والموصل محليًا.
يمكنك الآن استخدام إضافة VS Code لإنشاء حِزم SDK للعملاء من أجل بدء تنفيذ طلبات البحث وعمليات التعديل في تطبيقات iOS وAndroid والويب وFlutter.
- في واجهة مستخدم الإضافة، انقر على الزر إضافة حزمة تطوير برامج (SDK) إلى التطبيق.
في مربّع الحوار الذي يظهر، اختَر دليلاً يحتوي على الرمز البرمجي لتطبيقك. سيتم إنشاء الرمز البرمجي لحزمة تطوير البرامج (SDK) وحفظه هناك.Data Connect
اختَر نظام تشغيل تطبيقك، ثم لاحظ أنّه يتم إنشاء رمز حزمة SDK على الفور في الدليل الذي اخترته.
المسار المحلي: استخدام حِزم SDK لطلب البحث من تطبيق
في السابق، نشرت المخطط والعمليات في وحدة تحكّم Firebase.
لاستدعاء عمليات من تطبيقك، يمكنك استخدام حزمة SDK التي تم إنشاؤها Data Connect لتنفيذ عملية استدعاء لطلب البحث ListMovies
.
الويب
- أضِف Firebase إلى تطبيقك على الويب.
في الملف الرئيسي لتطبيق React، اتّبِع الخطوات التالية:
- استيراد حزمة SDK التي تم إنشاؤها
- استدعاء طرق Data Connect
import React from 'react'; import ReactDOM from 'react-dom/client'; // Generated queries. // Update as needed with the path to your generated SDK. import { listMovies, ListMoviesData } from '@movie-app/movies'; function App() { const [movies, setMovies] = useState<ListMoviesData['movies']>([]); useEffect(() => { listMovies.then(res => setMovies(res.data)); }, []); return ( movies.map(movie => <h1>{movie.title}</h1>); ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<App />);
Swift
- أضِف Firebase إلى تطبيق iOS.
لاستخدام حزمة SDK التي تم إنشاؤها، عليك ضبطها كعنصر تابع في Xcode.
في شريط التنقّل العلوي في Xcode، اختَر ملف (File) > إضافة تبعيات الحزمة (Add Package Dependencies) > إضافة محلية (Add Local)، ثم اختَر المجلد الذي يحتوي على
Package.swift
الذي تم إنشاؤه.في مفوّض تطبيقك الرئيسي:
- استيراد حزمة SDK التي تم إنشاؤها
- استدعاء طرق Data Connect
import SwiftUI import FirebaseDataConnect // Generated queries. // Update as needed with the package name of your generated SDK. import <CONNECTOR-PACKAGE-NAME> let connector = DataConnect.moviesConnector struct ListMovieView: View { @StateObject private var queryRef = connector.listMovies.ref() var body: some View { VStack { Button { Task { do { try await refresh() } catch { print("Failed to refresh: \(error)") } } } label: { Text("Refresh") } // use the query results in a view ForEach(queryRef.data?.movies ?? []) { movie in Text(movie.title) } } } @MainActor func refresh() async throws { _ = try await queryRef.execute() } struct ContentView_Previews: PreviewProvider { static var previews: some View { ListMovieView() } }
Kotlin Android
- أضِف Firebase إلى تطبيقك على Android.
لاستخدام حزمة تطوير البرامج (SDK) التي تم إنشاؤها، عليك ضبط Data Connect كعنصر تابع في Gradle.
تعديل
plugins
وdependencies
فيapp/build.gradle.kts
plugins { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest as of March 14, 2025. // Note, however, that the version of kotlin("plugin.serialization") must, // in general, match the version of kotlin("android"). id("com.android.application") version "8.9.0" id("com.google.gms.google-services") version "4.4.2" val kotlinVersion = "2.1.10" kotlin("android") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion } dependencies { // Use whichever versions of these dependencies suit your application. // The versions shown here were the latest versions as of March 14, 2025. implementation("com.google.firebase:firebase-dataconnect:16.0.0-beta04") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1") implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3") // These dependencies are not strictly required, but will very likely be used // when writing modern Android applications. implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0") implementation("androidx.appcompat:appcompat:1.7.0") implementation("androidx.activity:activity-ktx:1.10.1") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7") implementation("com.google.android.material:material:1.12.0") }
في النشاط الرئيسي لتطبيقك:
- استيراد حزمة SDK التي تم إنشاؤها
- استدعاء طرق Data Connect
import android.os.Bundle import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import kotlinx.coroutines.launch private val connector = com.myapplication.MoviesConnector.instance class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val textView: TextView = findViewById(R.id.text_view) lifecycleScope.launch { lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) { val result = connector.listMovies.runCatching { execute { } } val newTextViewText = result.fold( onSuccess = { val titles = it.data.movies.map { it.title } "${titles.size} movies: " + titles.joinToString(", ") }, onFailure = { "ERROR: ${it.message}" } ) textView.text = newTextViewText } } } }
Flutter
- أضِف Firebase إلى تطبيق Flutter.
- ثبِّت أداة سطر الأوامر flutterfire
dart pub global activate flutterfire_cli
. - نفِّذ الأمر
flutterfire configure
. - في الدالة الرئيسية لتطبيقك:
- استيراد حزمة SDK التي تم إنشاؤها
- استدعاء طرق Data Connect
import 'package:firebase_core/firebase_core.dart';
import 'package:flutter/material.dart';
import 'firebase_options.dart';
// Generated queries.
// Update as needed with the path to your generated SDK
import 'movies_connector/movies.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(children: [
ConstrainedBox(
constraints: const BoxConstraints(maxHeight: 200),
child: FutureBuilder(
future: MoviesConnector.instance.listMovies().execute(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return ListView.builder(
scrollDirection: Axis.vertical,
itemBuilder: (context, index) => Card(
child: Text(
snapshot.data!.data.movies[index].title,
)),
itemCount: snapshot.data!.data.movies.length,
);
}
return const CircularProgressIndicator();
}),
)
])));
}
}
الخطوات التالية
راجِع مشروعك الذي تم نشره واطّلِع على المزيد من الأدوات:
- يمكنك إضافة بيانات إلى قاعدة البيانات وفحص المخططات وتعديلها وتتبُّع خدمة Data Connect في وحدة تحكّم Firebase.
يمكنك الاطّلاع على مزيد من المعلومات في المستندات. على سبيل المثال، بعد إكمال دليل التشغيل السريع، يمكنك إجراء ما يلي:
- استكشِف المزيد من أدوات المساعدة المستندة إلى الذكاء الاصطناعي والإرشادات التي تساعدك في إنشاء المخططات وعمليات البحث والتعديل. يتناول دليل المساعدة المستندة إلى الذكاء الاصطناعي كيفية إعداد خادم MCP واستخدامه مع بيئات التطوير المتكاملة وأفضل الممارسات لكتابة الطلبات.
- مزيد من المعلومات عن تطوير المخطط وطلب البحث والتعديل
- تعرَّف على كيفية إنشاء حِزم تطوير البرامج (SDK) للعملاء وتنفيذ طلبات البحث وعمليات التعديل من رمز العميل على الويب وAndroid وiOS وFlutter.