CRUD با Firebase Firestore | فلاتر | داستان AM

CRUD با Firebase Firestore | فلاتر | داستان AM

هنر AkarMoon BitMap: Yin Yan Firebase Web Android Youtube Flutter


منبع:


Firebase Firestore CRUD | فلاتر | توسعه دهندگان Firebase (medium.com)

انجام پروژه در فریلنس پروژه

Firebase یکی از محبوب ترین BaaS است که در توسعه برنامه های تلفن همراه استفاده می شود. خدمات مختلفی را برای توسعه اپلیکیشن موبایل ارائه می دهد که در این مقاله Firebase Firestore به یکی از آنها خواهیم پرداخت. Firestore به شما امکان آپلود و بازیابی اطلاعات را با دستورات بسیار کوتاه و ساده می دهد.


من قصد دارم این برنامه Schedular را بسازم (مانند برنامه زمانبندی درس) تا عملیات Firestore CRUD (ایجاد حذف به‌روزرسانی خواندنی) را نشان دهد.


بیایید با ایجاد یک پروژه Firebase شروع کنیم. اگر برای ساخت پروژه در Firebase به کمک نیاز دارید، می توانید آن را در اینجا بررسی کنید:


شروع به کار با Cloud Firestore | Firebase (google.com)

سفارش ساخت سایت

شما را از طریق آن راهنمایی می کند.


حال شما خوب است؟ خوب! بیایید مجموعه کتابخانه خود را اضافه کنیم.

بسته های بسته کتابخانه Kumpulan


بسته های کتابخانه را از طریق فایل pubspec.yaml اضافه کنید:


firebase_core: ^1.19.2

cloud_firestore: ^3.3.0


مقدار دهی اولیه کنید


در مرحله بعد، پروژه Firebase خود را مقداردهی اولیه می کنیم.


در تابع اصلی یک تابع async (ناهمزمان) ایجاد کنید و قبل از تابع runApp() یک خط اضافه کنید:

طراحان لوگو

WidgetsFlutterBinding.ensureInitialized();await Firebase.initializeApp(گزینه ها: DefaultFirebaseOptions.currentPlatform,);


تابع WidgetsFlutterBinding.ensureInitialized() برای تعامل با موتور Flutter استفاده می شود. فراخوانی می شود زیرا Firebase.initializeApp() باید کد بومی و اقدامات WidgetsFlutterBinding مانند کانال های پلتفرم نامیده شود.


اکنون که Firebase را مقداردهی اولیه کردیم، به سمت عملکرد عملیات CRUD در پایگاه داده Firestore خود می رویم.


ساختار DB برنامه زمان بندی شده (برنامه برنامه)

کلاس مدل ما

ایجاد/ایجاد/نوشتن


یک مجموعه فقط شامل مجموعه ای از محتویات سند است. یک سند می تواند شامل ستون ها و زیر مجموعه های دیگری باشد.


پایگاه داده ما از یک مجموعه ریشه واحد به نام "قرار ملاقات ها" ایجاد شده است و مجموعه اسناد مجزا از مجموعه قرارها را نشان می دهد.


برای نوشتن داده ها، با استفاده از این تابع از سمت کاربر قول می دهیم:

انجام پروژه متلب

اما ما باید قبل از آپلود آن در Firestore از شناسه سند برای کلاس Appointment فرار کنیم، پس چگونه این کار را انجام دهیم؟ بیایید تابع bookSession (نشانک جلسه) خود را دوباره تعریف کنیم.


در خط 5، Firestore مجموعه ای به نام "قرار ملاقات" (Janju) ایجاد می کند و آن قرار را به عنوان یک سند با شناسه سند تولید شده به طور خودکار اضافه می کند. اگر آن مجموعه از قبل وجود داشته باشد، بدون مجموعه تکراری به سند اضافه می شود.

خواندن / خواندن


برای خواندن داده ها از Fitestore، از متد get() یا fetch استفاده می کنید.


db.collection("قراردادها").doc("FpS9NDSdMD2GeE9GL3i2").get().then(

  (DocumentSnapshot doc) {

    داده نهایی = doc.data() به عنوان Map<String, dynamic>;

    //...

  }،

  onError: (e) => print("خطا در دریافت سند: $e")،

)


از آنجایی که می خواهیم رابط کاربری برنامه خود را به صورت بلادرنگ به روز کنیم، از StreamBuilder استفاده خواهیم کرد. بازیابی داده ها از Fitestore با استفاده از StreamBuilder کمی با خواندن با استفاده از متد get() متفاوت است.


ببینید در هنگام دریافت قرارهای بی‌درنگ، قرار ملاقات‌ها را مستقیماً از کاربران چگونه می‌گیریم.


جریان getAppointments ما.

به روز رسانی / به روز رسانی


برای به روز رسانی داده ها در Firestore، از set() duplicate یا update() استفاده کنید.


برای کاربرانی که نیاز به به‌روزرسانی جزئیات قرار ملاقات دارند، یک ویژگی ویرایش اضافه کرده‌ام.


با استفاده از set()، ورودی داده در سند را با محتوای به روز شده به روز می کنیم.


با این حال، اگر بخواهیم محتویات را به صورت جداگانه به روز کنیم، به جای set() از update() استفاده می کنیم، بنابراین به نظر می رسد:

حذف/حذف


پایگاه داده Firestore به شما امکان می دهد اسناد، ستون ها و مجموعه ها را حذف کنید (اگرچه این کار توصیه نمی شود)


ما یک گزینه حذف برای موقعیت هایی ایجاد می کنیم که کاربر نظر خود را تغییر می دهد و تصمیم می گیرد قول خود را حذف کند. برای حذف یک وعده، سند را با این تابع از مجموعه حذف می کنیم:


ما سند را بر اساس شناسه سند به عنوان یک پارامتر در doc() قرار می دهیم. سپس delete() را فراخوانی کنید.


برای حذف یک ستون در یک سند، از نحو استفاده می کنیم:


یک فیلد را با استفاده از تابع FieldValue.delete حذف می کنیم و سپس سند را با استفاده از update() به روز می کنیم.


این مربوط به پوشش ویژگی برنامه ما و عملیات CRUD Firestore است. همیشه سعی می‌کنم تا حد امکان یک برنامه آزمایشی ساده بسازم تا بتوانیم روی موضوع تمرکز کنیم. با این حال، احساس آزادی ایجاد بر روی آن با ایجاد صفحات یا ویژگی‌های بیشتر، به شما این امکان را می‌دهد که بیشتر در مورد Firestore تمرین کنید.


اگر سوال یا پیشنهادی دارید کامنت بگذارید.

انجام پروژه پایتون

کد منبع کامل را از اینجا بگیرید:


GitHub — iamIkay/schedular_app: برنامه زمانبندی ایجاد شده با Flutter و Firebase


شما را در فصل بعدی سری Firebase می بینیم.