What Is Supabase? Database, Authentication, Storage and Realtime

Understand Supabase for mobile apps, including database, authentication, storage, realtime updates, SQL, security policies, and Flutter integration

سپا بیس کیا ہے؟ ڈیٹا بیس، لاگ اِن، اسٹوریج اور ریئل ٹائم کو آسان مثالوں سے سمجھیں

اگر آپ ایسی موبائل ایپ بنانا چاہتے ہیں جسے ایک سے زیادہ لوگ استعمال کر سکیں، تو صرف خوبصورت اسکرینز بنا لینا کافی نہیں ہوتا۔

آپ کو ایک ایسے آن لائن سسٹم کی ضرورت ہوتی ہے جہاں:

  • یوزرز کا ڈیٹا محفوظ ہو۔
  • لاگ اِن سسٹم کام کرے۔
  • تصاویر اور فائلز رکھی جا سکیں۔
  • مختلف موبائلز ایک ہی ڈیٹا استعمال کر سکیں۔
  • ڈیٹا میں تبدیلی دوسرے صارفین کو بھی نظر آئے۔

ایسے بیک اینڈ نظام کے لیے سپا بیس ایک مقبول آپشن ہے۔

اگر آپ پہلے لوکل اور کلاؤڈ ایپ کا فرق سمجھنا چاہتے ہیں تو یہ مضمون پہلے پڑھیں:

متعلقہ مضمون:
]لوکل ایپ اور کلاؤڈ ایپ میں فرق: موبائل ایپ کو لائیو کیسے کیا جاتا ہے؟]

سپا بیس کیا ہے؟

سپا بیس ایک کلاؤڈ بیک اینڈ پلیٹ فارم ہے۔

یہ ایپ ڈیویلپر کو کئی بنیادی بیک اینڈ سہولیات ایک ہی جگہ فراہم کرتا ہے۔

مثلاً:

  • ڈیٹا بیس
  • آتھنٹیکیشن
  • اسٹوریج
  • ریئل ٹائم
  • اے پی آئیز
  • بیک اینڈ فنکشنز

اس کا فائدہ یہ ہے کہ ہر چیز صفر سے خود بنانے کی ضرورت کم ہو جاتی ہے۔

سپا بیس خود مکمل ایپ نہیں بناتا

یہ بات واضح رہنی چاہیے۔

سپا بیس آپ کے لیے فلٹر ایپ کی مکمل اسکرینز نہیں بناتا۔

آپ کی موبائل ایپ فلٹر میں ہو سکتی ہے۔

اس ایپ کا فرنٹ اینڈ موبائل پر چلتا ہے، جبکہ سپا بیس اس کے پیچھے بیک اینڈ کی ذمہ داری سنبھالتا ہے۔

سادہ شکل:

فلٹر ایپ
↓
سپا بیس
↓
ڈیٹا بیس اور دوسری بیک اینڈ سروسز

ڈیٹا بیس کیا ہے؟

ڈیٹا بیس ایک منظم نظام ہے جہاں ایپ کا ڈیٹا محفوظ کیا جاتا ہے۔

مثلاً ایک آن لائن اسٹور میں درج ذیل معلومات محفوظ ہو سکتی ہیں:

  • یوزرز
  • پراڈکٹس
  • قیمتیں
  • اسٹاک
  • آرڈرز
  • پیمنٹس
  • ایڈریسز

ڈیٹا بیس کا مقصد صرف ڈیٹا محفوظ کرنا نہیں بلکہ اسے منظم رکھنا بھی ہے تاکہ بعد میں اسے:

  • سرچ کیا جا سکے۔
  • اپڈیٹ کیا جا سکے۔
  • ڈیلیٹ کیا جا سکے۔
  • دوسرے ڈیٹا کے ساتھ جوڑا جا سکے۔

ٹیبل کیا ہوتا ہے؟

ڈیٹا بیس کے اندر معلومات عام طور پر مختلف ٹیبلز میں رکھی جاتی ہیں۔

مثلاً ایک آن لائن اسٹور میں:

یوزرز
پراڈکٹس
آرڈرز
پیمنٹس

کے الگ الگ ٹیبلز ہو سکتے ہیں۔

آن لائن اسٹور کی مثال

فرض کریں آپ نے ایک جوتا فروخت کے لیے رکھا ہے۔

اس کا ڈیٹا یہ ہے:

نام: اسپورٹس شوز
قیمت: 5,000 روپے
اسٹاک: 10

یہ معلومات پراڈکٹس ٹیبل میں محفوظ ہو سکتی ہیں۔

اب ایک صارف ایک جوتا خرید لیتا ہے۔

اس کے بعد صرف آرڈر نہیں بنتا بلکہ کئی جگہ ڈیٹا بدل سکتا ہے۔

مثلاً اسٹاک:

10

سے کم ہو کر:

9

ہو جائے گا۔

ساتھ ہی نیا آرڈر محفوظ ہوگا۔

ایک آرڈر کئی جگہ ڈیٹا کیوں بدلتا ہے؟

ایک خریداری کے بعد بیک اینڈ یہ کام کر سکتا ہے:

  • اسٹاک کم کرے۔
  • نیا آرڈر محفوظ کرے۔
  • یوزر کی آرڈر ہسٹری اپڈیٹ کرے۔
  • دکاندار کو نیا آرڈر دکھائے۔
  • سیلز رپورٹ اپڈیٹ کرے۔
  • پیمنٹ ریکارڈ محفوظ کرے۔

یعنی ایک ہی ایکشن کئی ٹیبلز اور ریکارڈز سے متعلق ہو سکتا ہے۔

ڈیٹا کے درمیان ریلیشن کیا ہے؟

فرض کریں آرڈر ٹیبل میں یہ لکھا ہے:

اسپورٹس شوز خریدے گئے

لیکن یہ معلوم نہیں کہ کس نے خریدے۔

تو معلومات ادھوری ہیں۔

اسی لیے یوزر، پراڈکٹ اور آرڈر کے درمیان ریلیشن بنایا جاتا ہے۔

مثلاً:

یوزر آئی ڈی
↓
آرڈر
↓
پراڈکٹ آئی ڈی

اس سے سسٹم معلوم کر سکتا ہے کہ کس یوزر نے کون سا پراڈکٹ خریدا۔

سپا بیس کا ڈیٹا بیس

سپا بیس بنیادی طور پر پوسٹگریس کیو ایل استعمال کرتا ہے۔

یہ ایک طاقتور ریلیشنل ڈیٹا بیس سسٹم ہے۔

اس کے ذریعے ہم مختلف ٹیبلز بنا سکتے ہیں اور ان کے درمیان ریلیشن قائم کر سکتے ہیں۔

ایس کیو ایل کیا ہے؟

ایس کیو ایل وہ لینگویج ہے جس کے ذریعے ریلیشنل ڈیٹا بیس کے ساتھ کام کیا جاتا ہے۔

اس کے ذریعے ہم:

  • ٹیبل بنا سکتے ہیں۔
  • ڈیٹا شامل کر سکتے ہیں۔
  • ڈیٹا تلاش کر سکتے ہیں۔
  • ڈیٹا اپڈیٹ کر سکتے ہیں۔
  • ڈیٹا ڈیلیٹ کر سکتے ہیں۔

سپا بیس کا ایس کیو ایل ایڈیٹر

سپا بیس میں ایس کیو ایل ایڈیٹر موجود ہوتا ہے۔

اگر آپ کو کسی ایپ کے لیے ٹیبل بنانے کا ایس کیو ایل کوڈ ملے تو اسے یہاں چلایا جا سکتا ہے۔

لیکن مصنوعی ذہانت یا کسی دوسرے ذریعے سے ملنے والا ایس کیو ایل کوڈ بغیر سمجھے رن نہیں کرنا چاہیے۔

پہلے یہ دیکھنا ضروری ہے کہ:

  • کون سا ٹیبل بن رہا ہے۔
  • کون سے کالم شامل ہو رہے ہیں۔
  • کون سی پالیسی لگ رہی ہے۔
  • کیا کوئی موجودہ ڈیٹا متاثر ہوگا۔

چیٹ ایپ کے لیے ٹیبل

ایک سادہ چیٹ روم کے لیے میسجز ٹیبل بنایا جا سکتا ہے۔

اس میں مثلاً یہ فیلڈز ہوں:

آئی ڈی
یوزر نیم
میسج
کری ایٹڈ ایٹ

ایک ریکارڈ:

یوزر نیم: احمد
میسج: السلام علیکم

دوسرا ریکارڈ:

یوزر نیم: علی
میسج: وعلیکم السلام

یوں ہر نیا پیغام ڈیٹا بیس میں الگ ریکارڈ بن سکتا ہے۔

آتھنٹیکیشن کیا ہے؟

اگر ایپ میں مختلف یوزرز ہیں تو سسٹم کو معلوم ہونا چاہیے کہ کون سا شخص لاگ اِن ہے۔

یہ کام آتھنٹیکیشن کرتی ہے۔

یوزر مختلف طریقوں سے لاگ اِن کر سکتا ہے، مثلاً:

  • ای میل اور پاس ورڈ
  • گوگل اکاؤنٹ
  • دوسری معاون لاگ اِن سروس

لاگ اِن ہونے کے بعد ایپ یوزر کے مطابق مخصوص ڈیٹا دکھا سکتی ہے۔

یوزر پروفائل کیا ہے؟

آتھنٹیکیشن صرف یہ بتاتی ہے کہ یوزر کون ہے۔

اس کے بعد الگ پروفائل ڈیٹا بھی رکھا جا سکتا ہے۔

مثلاً:

  • نام
  • پروفائل تصویر
  • شہر
  • فون
  • اکاؤنٹ بنانے کی تاریخ

اس پروفائل کو یوزر کی منفرد آئی ڈی کے ساتھ جوڑا جا سکتا ہے۔

اسٹوریج کیا ہے؟

تصاویر، ویڈیوز، پی ڈی ایف اور دوسری فائلز عام طور پر ڈیٹا بیس کے اندر براہِ راست رکھنے کے بجائے اسٹوریج میں رکھی جاتی ہیں۔

مثلاً:

  • پروفائل فوٹو
  • پراڈکٹ امیج
  • رسید
  • ڈاکومنٹ

سپا بیس اس مقصد کے لیے اسٹوریج فراہم کرتا ہے۔

پھر ڈیٹا بیس میں اس فائل کا ریکارڈ یا یو آر ایل رکھا جا سکتا ہے۔

ریئل ٹائم کیا ہے؟

ریئل ٹائم وہ سہولت ہے جس کے ذریعے ایک یوزر کی طرف سے ہونے والی ڈیٹا تبدیلی دوسرے یوزرز تک جلد پہنچ سکتی ہے۔

مثلاً ایک چیٹ روم میں احمد لکھتا ہے:

السلام علیکم

یہ میسج ڈیٹا بیس میں محفوظ ہوتا ہے۔

اگر دوسرے یوزرز کی ایپس ریئل ٹائم اپڈیٹس سن رہی ہوں تو انہیں نیا میسج فوراً دکھائی دے سکتا ہے۔

چیٹ ایپ میں ریئل ٹائم کیسے کام کرتا ہے؟

سادہ بہاؤ:

احمد کا موبائل
↓
سپا بیس
↓
میسجز ٹیبل
↓
ریئل ٹائم اپڈیٹ
↓
علی کا موبائل

یہی وجہ ہے کہ چیٹ ایپ میں نئے میسجز بار بار ریفریش کیے بغیر ظاہر ہو سکتے ہیں۔

سپا بیس سے فلٹر ایپ کیسے کنیکٹ ہوتی ہے؟

فلٹر ایپ کو سپا بیس پروجیکٹ سے جوڑنے کے لیے عام طور پر متعلقہ کنیکشن معلومات استعمال ہوتی ہیں۔

مثلاً:

  • پروجیکٹ یو آر ایل
  • کلائنٹ کی

ایپ پھر سپا بیس کے ذریعے ڈیٹا بھیج اور حاصل کر سکتی ہے۔

حساس کی موبائل ایپ میں شامل نہ کریں

یہ ایک اہم سیکیورٹی اصول ہے۔

اگر کسی بیک اینڈ پلیٹ فارم میں ایسی خفیہ کی موجود ہو جو مکمل ایڈمن اختیار رکھتی ہو تو اسے موبائل ایپ کے اندر شامل نہیں کرنا چاہیے۔

موبائل ایپ کا کوڈ صارف کے ہاتھ میں پہنچتا ہے، اس لیے حساس سیکریٹس کو محفوظ سرور سائیڈ پر رکھنا چاہیے۔

رو لیول سیکیورٹی کیا ہے؟

صرف ٹیبل بنا دینا کافی نہیں ہوتا۔

یہ بھی طے کرنا پڑتا ہے کہ کون سا یوزر کون سا ڈیٹا دیکھ یا تبدیل کر سکتا ہے۔

سپا بیس میں اس مقصد کے لیے رو لیول سیکیورٹی استعمال کی جا سکتی ہے۔

مثلاً:

  • یوزر اپنا ریکارڈ دیکھ سکتا ہے۔
  • دوسروں کا حساس ڈیٹا نہیں دیکھ سکتا۔
  • صرف مجاز یوزر ریکارڈ اپڈیٹ کر سکتا ہے۔

پالیسیز کیوں ضروری ہیں؟

اگر آپ نے ڈیٹا بیس کو ہر شخص کے لیے مکمل کھول دیا تو کوئی یوزر:

  • دوسروں کا ڈیٹا تبدیل کر سکتا ہے۔
  • ڈیٹا ڈیلیٹ کر سکتا ہے۔
  • ایسی معلومات دیکھ سکتا ہے جن تک اسے رسائی نہیں ہونی چاہیے۔

اسی لیے پالیسیز اور پرمیشنز کو سنجیدگی سے ترتیب دینا ضروری ہے۔

سپا بیس صرف چیٹ ایپ کے لیے نہیں

سپا بیس کو مختلف قسم کی ایپس کے بیک اینڈ کے طور پر استعمال کیا جا سکتا ہے۔

مثلاً:

  • ای کامرس
  • اسکول ایپ
  • بکنگ سسٹم
  • کمیونٹی ایپ
  • مارکیٹ پلیس
  • ٹاسک مینجمنٹ
  • سی آر ایم
  • لائیو ڈیش بورڈ

مصنوعی ذہانت سے بنایا گیا کوڈ چیک کیوں کرنا چاہیے؟

آج مصنوعی ذہانت سے فلٹر کوڈ، ایس کیو ایل اور بیک اینڈ لاجک بنوائی جا سکتی ہے۔

لیکن ہر کوڈ کو درست سمجھ لینا مناسب نہیں۔

خاص طور پر ایس کیو ایل رن کرنے سے پہلے چیک کریں کہ وہ:

  • ٹیبل ڈیلیٹ تو نہیں کر رہا۔
  • غیر ضروری پرمیشن تو نہیں دے رہا۔
  • حساس ڈیٹا ظاہر تو نہیں کر رہا۔
  • غلط فیلڈز تو نہیں بنا رہا۔

مکمل ورک فلو

ایک سادہ لائیو ایپ بنانے کا بنیادی ورک فلو یوں ہو سکتا ہے:

ایپ کا آئیڈیا
↓
فلٹر فرنٹ اینڈ
↓
سپا بیس پروجیکٹ
↓
ڈیٹا بیس ٹیبلز
↓
آتھنٹیکیشن
↓
پالیسیز
↓
ریئل ٹائم
↓
اے پی کے
↓
مختلف موبائلز پر ٹیسٹنگ

نتیجہ

سپا بیس کا بنیادی فائدہ یہ ہے کہ یہ موبائل ایپ کو ایک مشترکہ کلاؤڈ بیک اینڈ فراہم کر سکتا ہے۔

اس کے ذریعے آپ:

  • ڈیٹا محفوظ کر سکتے ہیں۔
  • یوزرز کا لاگ اِن بنا سکتے ہیں۔
  • فائلز محفوظ کر سکتے ہیں۔
  • مختلف ٹیبلز کے درمیان ریلیشن بنا سکتے ہیں۔
  • ریئل ٹائم اپڈیٹس حاصل کر سکتے ہیں۔
  • مختلف موبائلز کو ایک ہی ڈیٹا سسٹم کے ساتھ جوڑ سکتے ہیں۔

اگر آپ ابھی کلاؤڈ ایپ کا بنیادی تصور سمجھ رہے ہیں تو پہلے یہ مضمون ضرور پڑھیں:

متعلقہ مضمون:
[لوکل ایپ اور کلاؤڈ ایپ میں فرق: موبائل ایپ کو لائیو کیسے کیا جاتا ہے؟]

ان دونوں تصورات کو سمجھ لینے کے بعد فلٹر میں ملٹی یوزر موبائل ایپس بنانا کافی زیادہ واضح ہو جاتا ہے۔

تبصرہ کریں