Google Cloud'un Firestore API'si hakkında bilmeniz gereken her şey
Everything you need to know about Google Cloud’s Firestore API

راهنمای کامل برای توسعه‌دهندگان، صاحبان محصول، و علاقه‌مندان به سرورلس

Google Cloud'un Firestore API'si hakkında bilmeniz gereken her şey

Google Firestore یکی از محبوب‌ترین دیتابیس‌های NoSQL ابری دنیاست که توسط Firebase و Google Cloud ارائه می‌شود. Firestore مناسبِ ساخت اپلیکیشن‌های Real-Time، مقیاس‌پذیر، بدون نیاز به مدیریت سرور و بسیار سریع است. این دیتابیس با REST API، gRPC، و SDKهای مختلف در دسترس است و از سمت توسعه‌دهندگان موبایل، وب و بک‌اند بسیار مورد استقبال قرار گرفته است. در این مقاله، به شکل کامل و جامع Firestore را معرفی می‌کنیم، با مثال‌های عملی، پروژه‌هایی که می‌توان با آن ساخت، نمونه اپلیکیشن‌های موفق، معماری، امنیت و بهترین شیوه‌ها.
0 Hisse senetleri
0
0
0
0

İçindekiler Hide
  1. Firestore چیست؟
  2. ساختار داده‌ها در Firestore
  3. نمونه کدهای کاربردی با Firestore API
    1. ۱. استفاده با JavaScript (Web App / Node.js)
    2. ۲. Firestore REST API
  4. پروژه‌هایی که می‌توان با Firestore ساخت
    1. ۱. اپلیکیشن‌های چت و پیام‌رسانی (Real-time Chat App)
    2. ۲. سیستم‌های مدیریت محتوا (Blog, CMS)
    3. ۳. اپلیکیشن‌های موبایل (iOS / Android / Flutter)
    4. ۴. داشبوردهای مدیریتی Real-Time (Admin Panels)
    5. ۵. فروشگاه اینترنتی کوچک و متوسط
    6. ۶. اپلیکیشن‌های IoT
  5. نمونه پروژه‌های موفقی که از Firestore استفاده می‌کنند
  6. مزایای Firestore
    1. مقیاس‌پذیری خودکار
    2. سرعت خواندن بالا
    3. امنیت با Firestore Security Rules
    4. Queryهای قدرتمند
  7. چالش‌ها و محدودیت‌ها (که بهتر است قبل از استفاده بدانید)
  8. Firestore vs Realtime Database
  9. بهترین شیوه‌ها در Firestore برای تولید حرفه‌ای
    1. ۱. ساختار داده را درست انتخاب کنید
    2. ۲. از Subcollection برای بخش‌بندی داده‌ها استفاده کنید
    3. ۳. Queryهای سنگین را Cache کنید
    4. ۴. از Cloud Functions برای پردازش‌های بک‌اند استفاده کنید
    5. ۵. Log گرفتن در Firestore Logging
  10. نمونه سیستم کامل بلاگ با Firestore
    1. ساختار پیشنهادی:
    2. مثال افزودن پست:
  11. Çözüm

Firestore چیست؟

Firestore یک دیتابیس ابری NoSQL مبتنی بر Document/Collection است که ویژگی‌های زیر دارد:

  • ذخیره‌سازی ساختارمند و قابل انعطاف
  • قابلیت Real-time Synchronization
  • امنیت سطح بالا با Firebase Security Rules
  • مقیاس‌پذیری خودکار
  • Latency بسیار کم در سطح جهانی
  • امکان اجرای Queryهای پیچیده
  • مناسب برای پروژه‌های کوچک تا Enterprise

Firestore در دو حالت Native Mode (ویژه Firebase) و Datastore Mode (برای سرویس‌های GCP Enterprise) ارائه می‌شود.


ساختار داده‌ها در Firestore

Firestore از یک معماری ساده اما قدرتمند استفاده می‌کند:

  • Collection → مجموعه‌ای از Documentها

  • Document → یک ساختار شبیه JSON

  • Subcollection → کالکشن داخل هر Document

  • Field → فیلدهای هر Document

نمونه ساختار:

users (collection)
   └── userId123 (document)
    ├── name: "Ali"
    ├── age: 28
    └── posts (subcollection)
      └── postId981 (document)
        ├── title: "My First Post"
        └── likes: 52

نمونه کدهای کاربردی با Firestore API

۱. استفاده با JavaScript (Web App / Node.js)

Kurulum

npm install firebase

اتصال به Firestore

import { initializeApp } from "firebase/app";
import { getFirestore, doc, setDoc, getDoc } from "firebase/firestore";
const firebaseConfig = {
apiKey: "...",
authDomain: "...",
projectId: "...",
};
const app = initializeApp(firebaseConfig);
const db = getFirestore(app);

اضافه کردن Document

await setDoc(doc(db, "users", "user1"), {
name: "Ali",
age: 28,
job: "Developer"
});

خواندن Document

const docRef = doc(db, "users", "user1");
const snap = await getDoc(docRef);
if (snap.exists()) {
console.log("Data:", snap.data());
}

۲. Firestore REST API

ارسال درخواست POST برای ایجاد Document

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{
"fields": {
"title": {"stringValue": "New Article"},
"views": {"integerValue": "102"}
}
}' \
"https://firestore.googleapis.com/v1/projects/YOUR_PROJECT/databases/(default)/documents/posts"


پروژه‌هایی که می‌توان با Firestore ساخت

۱. اپلیکیشن‌های چت و پیام‌رسانی (Real-time Chat App)

به‌دلیل قابلیت همگام‌سازی لحظه‌ای، Firestore یکی از بهترین گزینه‌ها برای ساخت چت است.

۲. سیستم‌های مدیریت محتوا (Blog, CMS)

به‌خصوص برای تیم‌های کوچک یا استارتاپ‌هایی که نمی‌خواهند با سرور درگیر شوند.

۳. اپلیکیشن‌های موبایل (iOS / Android / Flutter)

به علت:

  • Latency پایین

  • Sync هم‌زمان

  • Offline Mode داخلی

۴. داشبوردهای مدیریتی Real-Time (Admin Panels)

مثل داشبورد فروشگاه آنلاین، آمار کاربران، مدیریت سفارش‌ها.

۵. فروشگاه اینترنتی کوچک و متوسط

اضافه کردن محصولات، دسته‌بندی، سبد خرید، سفارش‌ها و …

۶. اپلیکیشن‌های IoT

ذخیره‌سازی سریع داده سنسورها.


نمونه پروژه‌های موفقی که از Firestore استفاده می‌کنند

  • Alibaba Cloud Mobile – استفاده از Firestore برای مدیریت Real-Time داده

  • The New York Times Crossword – استفاده برای Multiplayer آنلاین

  • Todoist – همگام‌سازی وظایف کاربران در چند دستگاه

  • Shazam – مدیریت برخی داده‌های ابری

  • Hotstar – ذخیره داده‌های کاربران و تنظیمات پروفایل

(بسیاری از سرویس‌ها Firestore را در پشت پرده استفاده می‌کنند بدون اعلام رسمی)


مزایای Firestore

مقیاس‌پذیری خودکار

بدون نیاز به مدیریت سرور.

سرعت خواندن بالا

با توجه به معماری Global Edge.

امنیت با Firestore Security Rules

مثال Rule که فقط صاحب حساب اجازه خواندن/نوشتن دارد:

service cloud.firestore {
match /databases/{database}/documents {
match /users/{uid} {
allow read, write: if request.auth.uid == uid;
}
}
}
پشتیبانی از Offline Mode

در موبایل و وب.

Queryهای قدرتمند

فیلتربندی، مرتب‌سازی، Range query، Indexing.


چالش‌ها و محدودیت‌ها (که بهتر است قبل از استفاده بدانید)

❌ Join وجود ندارد (NoSQL است)
❌ Queryهای پیچیده نیاز به Index دارند
❌ هزینه براساس تعداد Read/Write/Storage محاسبه می‌شود
❌ مناسب دیتاست‌های بسیار بزرگ (TB به بالا) نیست
❌ Transaction محدودیت دارد


Firestore vs Realtime Database

ÖzellikFirestoreRealtime DB
ساختار دادهDocument-basedJSON Tree
Queryبسیار قویخیلی محدود
مقیاس‌پذیریبالامتوسط
قیمتمعمولیارزان‌تر
موارد استفادهاپ‌های مدرنچت ساده، IoT

Firestore نسخه جدیدتر و بهینه‌تر Realtime DB است.


بهترین شیوه‌ها در Firestore برای تولید حرفه‌ای

۱. ساختار داده را درست انتخاب کنید

ترجیحاً Documentهای بزرگ نسازید.

۲. از Subcollection برای بخش‌بندی داده‌ها استفاده کنید

مثال: posts → comments → likes

۳. Queryهای سنگین را Cache کنید

تا هزینه Read کاهش یابد.

۴. از Cloud Functions برای پردازش‌های بک‌اند استفاده کنید

مثل ارسال نوتیفیکیشن، ایجاد Index، خلاصه‌سازی داده‌ها.

۵. Log گرفتن در Firestore Logging

برای جلوگیری از هزینه‌های ناخواسته.


نمونه سیستم کامل بلاگ با Firestore

ساختار پیشنهادی:

posts (collection)
  └── postId
    ├── title
    ├── content
    ├── authorId
    ├── createdAt
    └── comments (subcollection)
      └── commentId
        ├── userId
        └── message

مثال افزودن پست:

import { collection, addDoc, serverTimestamp } from "firebase/firestore";
await addDoc(collection(db, "posts"), {
title: "First Blog Post",
content: "This is the content...",
authorId: "u123",
createdAt: serverTimestamp()
});

Çözüm

Firestore یک دیتابیس ابری قدرتمند، Real-time، و مناسب برای ساخت سرویس‌های سریع، مقیاس‌پذیر و سرورلس است.
این سرویس مناسب:

✅ وب‌سایت
✅ اپ موبایل
✅ سیستم مدیریت محتوا
✅ اپ‌های چت
✅ داشبوردهای Realtime
✅ پروژه‌های IoT
✅ فروشگاه‌های آنلاین

اگر در حال ساخت محصولی هستید که نیاز به همگام‌سازی فوری، سرعت بالا و هزینه قابل کنترل دارد، Firestore یکی از بهترین گزینه‌هاست.

[Toplam: 1   Ortalama: 5/5]
Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Ayrıca Şunları da Beğenebilirsiniz