0Pricing
Indie Hacker Mobile Apps · درس

قواعد البيانات والوظائف السحابية

تعامَل مع قواعد البيانات الفورية، مثل Firestore، وانشر وظائف سحابية بدون خوادم لتنفيذ منطق خلفي مخصص

قواعد البيانات والوظائف السحابية درس مجاني في Indie Hacker Mobile Apps على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Indie Hacker Mobile Apps، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Indie Hacker Mobile Apps 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

Cloud Databases Unveiled

Welcome! Today, we'll explore cloud databases and serverless functions, essential tools for scalable mobile apps. They provide robust, managed backends without the hassle of server maintenance.

We'll focus on Firestore, a popular choice for real-time data, and Cloud Functions for custom backend logic.

Firestore's Data Model

Cloud Firestore is a flexible, scalable NoSQL document database. Unlike traditional relational databases with tables and rows, Firestore organizes data into collections and documents.

Each document contains key-value pairs, known as fields. Documents live within collections, and collections can even contain subcollections.

Structuring Your App Data

Understanding collections and documents is key to structuring your app's data efficiently. Imagine a simple e-commerce app:

  • users (collection)
    • user_alice_id (document)
      • name: "Alice"
      • email: "alice@example.com"
  • products (collection)
    • product_xyz_id (document)
      • name: "Cool Gadget"
      • price: 99.99

Adding Data with Ease

Adding data to Firestore is straightforward. You can use add() to let Firestore generate a unique document ID, or set() to specify your own ID or overwrite an existing document.

Here's how to add a new user to a 'users' collection:

db.collection("users").add({
  name: "Bob",
  email: "bob@example.com",
  status: "active"
})
.then((docRef) => {
  console.log("Document written with ID: ", docRef.id);
})
.catch((error) => {
  console.error("Error adding document: ", error);
});

Fetching Data on Demand

To retrieve a document or a collection of documents once, you use the get() method. This is useful for data that doesn't require constant, real-time updates.

Let's fetch a specific user's data using their document ID:

db.collection("users").doc("bob_doc_id").get()
  .then((doc) => {
    if (doc.exists) {
      console.log("Document data:", doc.data());
    } else {
      console.log("No such document!");
    }
  })
  .catch((error) => {
    console.error("Error getting document:", error);
  });

Keeping Data Live with Snapshots

Firestore's real-time capabilities are powerful. By using onSnapshot(), you can listen for changes to documents or collections. Whenever data changes on the backend, your app receives instant updates.

This snippet demonstrates listening to a single document for real-time changes:

db.collection("products").doc("prod_xyz").onSnapshot((doc) => {
  if (doc.exists) {
    console.log("Current product data:", doc.data());
  } else {
    console.log("Product removed or never existed!");
  }
});
// This listener keeps your app updated automatically

Serverless Logic with Functions

Cloud Functions are serverless pieces of code that run in response to specific events. They let you execute custom backend logic without needing to manage or provision any servers.

They're perfect for extending your BaaS (like Firebase) with custom features, security rules, or integrations.

What Makes a Function Run?

Cloud Functions are 'event-driven,' meaning they only run when a specific event occurs. These events are called triggers. Common types include:

  • HTTP triggers: For creating API endpoints.
  • Firestore triggers: React to document creation, updates, or deletions.
  • Authentication triggers: Respond to user sign-ups or deletions.
  • Scheduled triggers: Run functions at specific times (e.g., daily cleanup).

Your First HTTP Cloud Function

Let's create a simple Cloud Function that responds to an HTTP request. This is like building a tiny, serverless API endpoint. It's a great way to handle custom logic that your mobile app might need.

This example will return a basic "Hello from Firebase!" message.

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.helloHttp = functions.https.onRequest((request, response) => {
  // Set CORS headers for web access, if needed
  response.set('Access-Control-Allow-Origin', '*'); 
  response.set('Access-Control-Allow-Methods', 'GET, POST');
  response.status(200).send("Hello from Firebase!");
});

Automating with Functions + DB

Cloud Functions and Firestore are a powerful combination. Functions can automatically react to changes in your Firestore database, allowing you to:

  • Update aggregate counts (e.g., total likes on a post).
  • Perform data validation or sanitization.
  • Send notifications or emails after a user action.

This keeps your app's logic robust and efficient, handling backend tasks seamlessly.

Cloud Logic Check

Test your understanding of cloud databases and serverless functions.

Databases & Functions Summary

You've explored the core concepts of Cloud Firestore for scalable, real-time data storage using a flexible NoSQL document model. You also learned about Cloud Functions, which enable you to deploy serverless backend logic in response to various triggers.

Mastering these tools is fundamental for building dynamic, robust, and efficient indie mobile apps!

الأسئلة الشائعة

هل درس «قواعد البيانات والوظائف السحابية» مجاني؟

نعم — نص درس «قواعد البيانات والوظائف السحابية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Indie Hacker Mobile Apps، انتقل إلى CoddyKit PRO. تتضمن دورة Indie Hacker Mobile Apps 4 دروس في المجموع.

ماذا ستتعلم في «قواعد البيانات والوظائف السحابية»؟

تعامَل مع قواعد البيانات الفورية، مثل Firestore، وانشر وظائف سحابية بدون خوادم لتنفيذ منطق خلفي مخصص تتمرن على Indie Hacker Mobile Apps مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Indie Hacker Mobile Apps؟

لا تُشترط خبرة سابقة. Indie Hacker Mobile Apps على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «قواعد البيانات والوظائف السحابية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Indie Hacker Mobile Apps هذا؟

نعم. كل درس في Indie Hacker Mobile Apps يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مقدمة إلى منصات BaaS
  2. مصادقة المستخدم وأمانه
  3. قواعد البيانات والوظائف السحابية
  4. البيانات الفورية والإشعارات الفورية باستخدام BaaS
← العودة إلى Indie Hacker Mobile Apps